diff --git a/profiles/preview/servicefabric/servicefabric/models.go b/profiles/preview/servicefabric/servicefabric/models.go index 865c9ef8415f..5a09140d3537 100644 --- a/profiles/preview/servicefabric/servicefabric/models.go +++ b/profiles/preview/servicefabric/servicefabric/models.go @@ -19,7 +19,7 @@ package servicefabric -import original "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.2/servicefabric" +import original "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.4/servicefabric" const ( DefaultBaseURI = original.DefaultBaseURI @@ -42,6 +42,12 @@ const ( ApplicationPackageCleanupPolicyManual ApplicationPackageCleanupPolicy = original.ApplicationPackageCleanupPolicyManual ) +type ApplicationScopedVolumeKind = original.ApplicationScopedVolumeKind + +const ( + ServiceFabricVolumeDisk ApplicationScopedVolumeKind = original.ServiceFabricVolumeDisk +) + type ApplicationStatus = original.ApplicationStatus const ( @@ -71,6 +77,31 @@ const ( ApplicationTypeStatusUnprovisioning ApplicationTypeStatus = original.ApplicationTypeStatusUnprovisioning ) +type AutoScalingMechanismKind = original.AutoScalingMechanismKind + +const ( + AddRemoveReplica AutoScalingMechanismKind = original.AddRemoveReplica +) + +type AutoScalingMetricKind = original.AutoScalingMetricKind + +const ( + Resource AutoScalingMetricKind = original.Resource +) + +type AutoScalingResourceMetricName = original.AutoScalingResourceMetricName + +const ( + CPU AutoScalingResourceMetricName = original.CPU + MemoryInGB AutoScalingResourceMetricName = original.MemoryInGB +) + +type AutoScalingTriggerKind = original.AutoScalingTriggerKind + +const ( + AverageLoad AutoScalingTriggerKind = original.AverageLoad +) + type BackupEntityKind = original.BackupEntityKind const ( @@ -256,6 +287,13 @@ const ( DeploymentStatusUpgrading DeploymentStatus = original.DeploymentStatusUpgrading ) +type DiagnosticsSinkKind = original.DiagnosticsSinkKind + +const ( + DiagnosticsSinkKindAzureInternalMonitoringPipeline DiagnosticsSinkKind = original.DiagnosticsSinkKindAzureInternalMonitoringPipeline + DiagnosticsSinkKindInvalid DiagnosticsSinkKind = original.DiagnosticsSinkKindInvalid +) + type EntityKind = original.EntityKind const ( @@ -293,157 +331,157 @@ const ( type FabricErrorCodes = original.FabricErrorCodes const ( - EABORT FabricErrorCodes = original.EABORT - EFAIL FabricErrorCodes = original.EFAIL - EINVALIDARG FabricErrorCodes = original.EINVALIDARG - FABRICEAPPLICATIONALREADYEXISTS FabricErrorCodes = original.FABRICEAPPLICATIONALREADYEXISTS - FABRICEAPPLICATIONALREADYINTARGETVERSION FabricErrorCodes = original.FABRICEAPPLICATIONALREADYINTARGETVERSION - FABRICEAPPLICATIONNOTFOUND FabricErrorCodes = original.FABRICEAPPLICATIONNOTFOUND - FABRICEAPPLICATIONNOTUPGRADING FabricErrorCodes = original.FABRICEAPPLICATIONNOTUPGRADING - FABRICEAPPLICATIONTYPEALREADYEXISTS FabricErrorCodes = original.FABRICEAPPLICATIONTYPEALREADYEXISTS - FABRICEAPPLICATIONTYPEINUSE FabricErrorCodes = original.FABRICEAPPLICATIONTYPEINUSE - FABRICEAPPLICATIONTYPENOTFOUND FabricErrorCodes = original.FABRICEAPPLICATIONTYPENOTFOUND - FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS FabricErrorCodes = original.FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS - FABRICEAPPLICATIONUPGRADEINPROGRESS FabricErrorCodes = original.FABRICEAPPLICATIONUPGRADEINPROGRESS - FABRICEAPPLICATIONUPGRADEVALIDATIONERROR FabricErrorCodes = original.FABRICEAPPLICATIONUPGRADEVALIDATIONERROR - FABRICEBACKUPINPROGRESS FabricErrorCodes = original.FABRICEBACKUPINPROGRESS - FABRICEBACKUPISENABLED FabricErrorCodes = original.FABRICEBACKUPISENABLED - FABRICEBACKUPNOTENABLED FabricErrorCodes = original.FABRICEBACKUPNOTENABLED - FABRICEBACKUPPOLICYALREADYEXISTING FabricErrorCodes = original.FABRICEBACKUPPOLICYALREADYEXISTING - FABRICEBACKUPPOLICYNOTEXISTING FabricErrorCodes = original.FABRICEBACKUPPOLICYNOTEXISTING - FABRICECOMMUNICATIONERROR FabricErrorCodes = original.FABRICECOMMUNICATIONERROR - FABRICECONFIGURATIONPARAMETERNOTFOUND FabricErrorCodes = original.FABRICECONFIGURATIONPARAMETERNOTFOUND - FABRICECONFIGURATIONSECTIONNOTFOUND FabricErrorCodes = original.FABRICECONFIGURATIONSECTIONNOTFOUND - FABRICEDIRECTORYNOTFOUND FabricErrorCodes = original.FABRICEDIRECTORYNOTFOUND - FABRICEENUMERATIONCOMPLETED FabricErrorCodes = original.FABRICEENUMERATIONCOMPLETED - FABRICEFABRICALREADYINTARGETVERSION FabricErrorCodes = original.FABRICEFABRICALREADYINTARGETVERSION - FABRICEFABRICNOTUPGRADING FabricErrorCodes = original.FABRICEFABRICNOTUPGRADING - FABRICEFABRICUPGRADEINPROGRESS FabricErrorCodes = original.FABRICEFABRICUPGRADEINPROGRESS - FABRICEFABRICUPGRADEVALIDATIONERROR FabricErrorCodes = original.FABRICEFABRICUPGRADEVALIDATIONERROR - FABRICEFABRICVERSIONALREADYEXISTS FabricErrorCodes = original.FABRICEFABRICVERSIONALREADYEXISTS - FABRICEFABRICVERSIONINUSE FabricErrorCodes = original.FABRICEFABRICVERSIONINUSE - FABRICEFABRICVERSIONNOTFOUND FabricErrorCodes = original.FABRICEFABRICVERSIONNOTFOUND - FABRICEFAULTANALYSISSERVICENOTEXISTING FabricErrorCodes = original.FABRICEFAULTANALYSISSERVICENOTEXISTING - FABRICEFILENOTFOUND FabricErrorCodes = original.FABRICEFILENOTFOUND - FABRICEHEALTHENTITYNOTFOUND FabricErrorCodes = original.FABRICEHEALTHENTITYNOTFOUND - FABRICEHEALTHSTALEREPORT FabricErrorCodes = original.FABRICEHEALTHSTALEREPORT - FABRICEIMAGEBUILDERVALIDATIONERROR FabricErrorCodes = original.FABRICEIMAGEBUILDERVALIDATIONERROR - FABRICEINSTANCEIDMISMATCH FabricErrorCodes = original.FABRICEINSTANCEIDMISMATCH - FABRICEINVALIDADDRESS FabricErrorCodes = original.FABRICEINVALIDADDRESS - FABRICEINVALIDATOMICGROUP FabricErrorCodes = original.FABRICEINVALIDATOMICGROUP - FABRICEINVALIDCONFIGURATION FabricErrorCodes = original.FABRICEINVALIDCONFIGURATION - FABRICEINVALIDFORSTATELESSSERVICES FabricErrorCodes = original.FABRICEINVALIDFORSTATELESSSERVICES - FABRICEINVALIDNAMEURI FabricErrorCodes = original.FABRICEINVALIDNAMEURI - FABRICEINVALIDPARTITIONKEY FabricErrorCodes = original.FABRICEINVALIDPARTITIONKEY - FABRICEINVALIDSERVICESCALINGPOLICY FabricErrorCodes = original.FABRICEINVALIDSERVICESCALINGPOLICY - FABRICEKEYNOTFOUND FabricErrorCodes = original.FABRICEKEYNOTFOUND - FABRICEKEYTOOLARGE FabricErrorCodes = original.FABRICEKEYTOOLARGE - FABRICENAMEALREADYEXISTS FabricErrorCodes = original.FABRICENAMEALREADYEXISTS - FABRICENAMEDOESNOTEXIST FabricErrorCodes = original.FABRICENAMEDOESNOTEXIST - FABRICENAMENOTEMPTY FabricErrorCodes = original.FABRICENAMENOTEMPTY - FABRICENODEHASNOTSTOPPEDYET FabricErrorCodes = original.FABRICENODEHASNOTSTOPPEDYET - FABRICENODEISUP FabricErrorCodes = original.FABRICENODEISUP - FABRICENODENOTFOUND FabricErrorCodes = original.FABRICENODENOTFOUND - FABRICENOTPRIMARY FabricErrorCodes = original.FABRICENOTPRIMARY - FABRICENOTREADY FabricErrorCodes = original.FABRICENOTREADY - FABRICENOWRITEQUORUM FabricErrorCodes = original.FABRICENOWRITEQUORUM - FABRICEOPERATIONNOTCOMPLETE FabricErrorCodes = original.FABRICEOPERATIONNOTCOMPLETE - FABRICEPARTITIONNOTFOUND FabricErrorCodes = original.FABRICEPARTITIONNOTFOUND - FABRICEPATHTOOLONG FabricErrorCodes = original.FABRICEPATHTOOLONG - FABRICEPROPERTYCHECKFAILED FabricErrorCodes = original.FABRICEPROPERTYCHECKFAILED - FABRICEPROPERTYDOESNOTEXIST FabricErrorCodes = original.FABRICEPROPERTYDOESNOTEXIST - FABRICERECONFIGURATIONPENDING FabricErrorCodes = original.FABRICERECONFIGURATIONPENDING - FABRICEREPLICADOESNOTEXIST FabricErrorCodes = original.FABRICEREPLICADOESNOTEXIST - FABRICERESTOREINPROGRESS FabricErrorCodes = original.FABRICERESTOREINPROGRESS - FABRICERESTORESOURCETARGETPARTITIONMISMATCH FabricErrorCodes = original.FABRICERESTORESOURCETARGETPARTITIONMISMATCH - FABRICESEQUENCENUMBERCHECKFAILED FabricErrorCodes = original.FABRICESEQUENCENUMBERCHECKFAILED - FABRICESERVICEAFFINITYCHAINNOTSUPPORTED FabricErrorCodes = original.FABRICESERVICEAFFINITYCHAINNOTSUPPORTED - FABRICESERVICEALREADYEXISTS FabricErrorCodes = original.FABRICESERVICEALREADYEXISTS - FABRICESERVICEDOESNOTEXIST FabricErrorCodes = original.FABRICESERVICEDOESNOTEXIST - FABRICESERVICEGROUPALREADYEXISTS FabricErrorCodes = original.FABRICESERVICEGROUPALREADYEXISTS - FABRICESERVICEGROUPDOESNOTEXIST FabricErrorCodes = original.FABRICESERVICEGROUPDOESNOTEXIST - FABRICESERVICEMANIFESTNOTFOUND FabricErrorCodes = original.FABRICESERVICEMANIFESTNOTFOUND - FABRICESERVICEMETADATAMISMATCH FabricErrorCodes = original.FABRICESERVICEMETADATAMISMATCH - FABRICESERVICEOFFLINE FabricErrorCodes = original.FABRICESERVICEOFFLINE - FABRICESERVICETYPEMISMATCH FabricErrorCodes = original.FABRICESERVICETYPEMISMATCH - FABRICESERVICETYPENOTFOUND FabricErrorCodes = original.FABRICESERVICETYPENOTFOUND - FABRICESERVICETYPETEMPLATENOTFOUND FabricErrorCodes = original.FABRICESERVICETYPETEMPLATENOTFOUND - FABRICETIMEOUT FabricErrorCodes = original.FABRICETIMEOUT - FABRICEVALUEEMPTY FabricErrorCodes = original.FABRICEVALUEEMPTY - FABRICEVALUETOOLARGE FabricErrorCodes = original.FABRICEVALUETOOLARGE + EABORT FabricErrorCodes = original.EABORT + EFAIL FabricErrorCodes = original.EFAIL + EINVALIDARG FabricErrorCodes = original.EINVALIDARG + FABRICEAPPLICATIONALREADYEXISTS FabricErrorCodes = original.FABRICEAPPLICATIONALREADYEXISTS + FABRICEAPPLICATIONALREADYINTARGETVERSION FabricErrorCodes = original.FABRICEAPPLICATIONALREADYINTARGETVERSION + FABRICEAPPLICATIONNOTFOUND FabricErrorCodes = original.FABRICEAPPLICATIONNOTFOUND + FABRICEAPPLICATIONNOTUPGRADING FabricErrorCodes = original.FABRICEAPPLICATIONNOTUPGRADING + FABRICEAPPLICATIONTYPEALREADYEXISTS FabricErrorCodes = original.FABRICEAPPLICATIONTYPEALREADYEXISTS + FABRICEAPPLICATIONTYPEINUSE FabricErrorCodes = original.FABRICEAPPLICATIONTYPEINUSE + FABRICEAPPLICATIONTYPENOTFOUND FabricErrorCodes = original.FABRICEAPPLICATIONTYPENOTFOUND + FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS FabricErrorCodes = original.FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS + FABRICEAPPLICATIONUPGRADEINPROGRESS FabricErrorCodes = original.FABRICEAPPLICATIONUPGRADEINPROGRESS + FABRICEAPPLICATIONUPGRADEVALIDATIONERROR FabricErrorCodes = original.FABRICEAPPLICATIONUPGRADEVALIDATIONERROR + FABRICEBACKUPINPROGRESS FabricErrorCodes = original.FABRICEBACKUPINPROGRESS + FABRICEBACKUPISENABLED FabricErrorCodes = original.FABRICEBACKUPISENABLED + FABRICEBACKUPNOTENABLED FabricErrorCodes = original.FABRICEBACKUPNOTENABLED + FABRICEBACKUPPOLICYALREADYEXISTING FabricErrorCodes = original.FABRICEBACKUPPOLICYALREADYEXISTING + FABRICEBACKUPPOLICYNOTEXISTING FabricErrorCodes = original.FABRICEBACKUPPOLICYNOTEXISTING + FABRICECOMMUNICATIONERROR FabricErrorCodes = original.FABRICECOMMUNICATIONERROR + FABRICECONFIGURATIONPARAMETERNOTFOUND FabricErrorCodes = original.FABRICECONFIGURATIONPARAMETERNOTFOUND + FABRICECONFIGURATIONSECTIONNOTFOUND FabricErrorCodes = original.FABRICECONFIGURATIONSECTIONNOTFOUND + FABRICEDIRECTORYNOTFOUND FabricErrorCodes = original.FABRICEDIRECTORYNOTFOUND + FABRICEENUMERATIONCOMPLETED FabricErrorCodes = original.FABRICEENUMERATIONCOMPLETED + FABRICEFABRICALREADYINTARGETVERSION FabricErrorCodes = original.FABRICEFABRICALREADYINTARGETVERSION + FABRICEFABRICNOTUPGRADING FabricErrorCodes = original.FABRICEFABRICNOTUPGRADING + FABRICEFABRICUPGRADEINPROGRESS FabricErrorCodes = original.FABRICEFABRICUPGRADEINPROGRESS + FABRICEFABRICUPGRADEVALIDATIONERROR FabricErrorCodes = original.FABRICEFABRICUPGRADEVALIDATIONERROR + FABRICEFABRICVERSIONALREADYEXISTS FabricErrorCodes = original.FABRICEFABRICVERSIONALREADYEXISTS + FABRICEFABRICVERSIONINUSE FabricErrorCodes = original.FABRICEFABRICVERSIONINUSE + FABRICEFABRICVERSIONNOTFOUND FabricErrorCodes = original.FABRICEFABRICVERSIONNOTFOUND + FABRICEFAULTANALYSISSERVICENOTEXISTING FabricErrorCodes = original.FABRICEFAULTANALYSISSERVICENOTEXISTING + FABRICEFILENOTFOUND FabricErrorCodes = original.FABRICEFILENOTFOUND + FABRICEHEALTHENTITYNOTFOUND FabricErrorCodes = original.FABRICEHEALTHENTITYNOTFOUND + FABRICEHEALTHSTALEREPORT FabricErrorCodes = original.FABRICEHEALTHSTALEREPORT + FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR FabricErrorCodes = original.FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR + FABRICEIMAGEBUILDERVALIDATIONERROR FabricErrorCodes = original.FABRICEIMAGEBUILDERVALIDATIONERROR + FABRICEINSTANCEIDMISMATCH FabricErrorCodes = original.FABRICEINSTANCEIDMISMATCH + FABRICEINVALIDADDRESS FabricErrorCodes = original.FABRICEINVALIDADDRESS + FABRICEINVALIDATOMICGROUP FabricErrorCodes = original.FABRICEINVALIDATOMICGROUP + FABRICEINVALIDCONFIGURATION FabricErrorCodes = original.FABRICEINVALIDCONFIGURATION + FABRICEINVALIDFORSTATELESSSERVICES FabricErrorCodes = original.FABRICEINVALIDFORSTATELESSSERVICES + FABRICEINVALIDNAMEURI FabricErrorCodes = original.FABRICEINVALIDNAMEURI + FABRICEINVALIDPARTITIONKEY FabricErrorCodes = original.FABRICEINVALIDPARTITIONKEY + FABRICEINVALIDSERVICESCALINGPOLICY FabricErrorCodes = original.FABRICEINVALIDSERVICESCALINGPOLICY + FABRICEKEYNOTFOUND FabricErrorCodes = original.FABRICEKEYNOTFOUND + FABRICEKEYTOOLARGE FabricErrorCodes = original.FABRICEKEYTOOLARGE + FABRICENAMEALREADYEXISTS FabricErrorCodes = original.FABRICENAMEALREADYEXISTS + FABRICENAMEDOESNOTEXIST FabricErrorCodes = original.FABRICENAMEDOESNOTEXIST + FABRICENAMENOTEMPTY FabricErrorCodes = original.FABRICENAMENOTEMPTY + FABRICENODEHASNOTSTOPPEDYET FabricErrorCodes = original.FABRICENODEHASNOTSTOPPEDYET + FABRICENODEISUP FabricErrorCodes = original.FABRICENODEISUP + FABRICENODENOTFOUND FabricErrorCodes = original.FABRICENODENOTFOUND + FABRICENOTPRIMARY FabricErrorCodes = original.FABRICENOTPRIMARY + FABRICENOTREADY FabricErrorCodes = original.FABRICENOTREADY + FABRICENOWRITEQUORUM FabricErrorCodes = original.FABRICENOWRITEQUORUM + FABRICEOPERATIONNOTCOMPLETE FabricErrorCodes = original.FABRICEOPERATIONNOTCOMPLETE + FABRICEPARTITIONNOTFOUND FabricErrorCodes = original.FABRICEPARTITIONNOTFOUND + FABRICEPATHTOOLONG FabricErrorCodes = original.FABRICEPATHTOOLONG + FABRICEPROPERTYCHECKFAILED FabricErrorCodes = original.FABRICEPROPERTYCHECKFAILED + FABRICEPROPERTYDOESNOTEXIST FabricErrorCodes = original.FABRICEPROPERTYDOESNOTEXIST + FABRICERECONFIGURATIONPENDING FabricErrorCodes = original.FABRICERECONFIGURATIONPENDING + FABRICEREPLICADOESNOTEXIST FabricErrorCodes = original.FABRICEREPLICADOESNOTEXIST + FABRICERESTOREINPROGRESS FabricErrorCodes = original.FABRICERESTOREINPROGRESS + FABRICERESTORESOURCETARGETPARTITIONMISMATCH FabricErrorCodes = original.FABRICERESTORESOURCETARGETPARTITIONMISMATCH + FABRICESEQUENCENUMBERCHECKFAILED FabricErrorCodes = original.FABRICESEQUENCENUMBERCHECKFAILED + FABRICESERVICEAFFINITYCHAINNOTSUPPORTED FabricErrorCodes = original.FABRICESERVICEAFFINITYCHAINNOTSUPPORTED + FABRICESERVICEALREADYEXISTS FabricErrorCodes = original.FABRICESERVICEALREADYEXISTS + FABRICESERVICEDOESNOTEXIST FabricErrorCodes = original.FABRICESERVICEDOESNOTEXIST + FABRICESERVICEGROUPALREADYEXISTS FabricErrorCodes = original.FABRICESERVICEGROUPALREADYEXISTS + FABRICESERVICEGROUPDOESNOTEXIST FabricErrorCodes = original.FABRICESERVICEGROUPDOESNOTEXIST + FABRICESERVICEMANIFESTNOTFOUND FabricErrorCodes = original.FABRICESERVICEMANIFESTNOTFOUND + FABRICESERVICEMETADATAMISMATCH FabricErrorCodes = original.FABRICESERVICEMETADATAMISMATCH + FABRICESERVICEOFFLINE FabricErrorCodes = original.FABRICESERVICEOFFLINE + FABRICESERVICETYPEMISMATCH FabricErrorCodes = original.FABRICESERVICETYPEMISMATCH + FABRICESERVICETYPENOTFOUND FabricErrorCodes = original.FABRICESERVICETYPENOTFOUND + FABRICESERVICETYPETEMPLATENOTFOUND FabricErrorCodes = original.FABRICESERVICETYPETEMPLATENOTFOUND + FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS FabricErrorCodes = original.FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS + FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND FabricErrorCodes = original.FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND + FABRICETIMEOUT FabricErrorCodes = original.FABRICETIMEOUT + FABRICEVALUEEMPTY FabricErrorCodes = original.FABRICEVALUEEMPTY + FABRICEVALUETOOLARGE FabricErrorCodes = original.FABRICEVALUETOOLARGE + FABRICEVOLUMEALREADYEXISTS FabricErrorCodes = original.FABRICEVOLUMEALREADYEXISTS + FABRICEVOLUMENOTFOUND FabricErrorCodes = original.FABRICEVOLUMENOTFOUND + SerializationError FabricErrorCodes = original.SerializationError ) type FabricEventKind = original.FabricEventKind const ( - FabricEventKindApplicationCreated FabricEventKind = original.FabricEventKindApplicationCreated - FabricEventKindApplicationDeleted FabricEventKind = original.FabricEventKindApplicationDeleted - FabricEventKindApplicationEvent FabricEventKind = original.FabricEventKindApplicationEvent - FabricEventKindApplicationHealthReportCreated FabricEventKind = original.FabricEventKindApplicationHealthReportCreated - FabricEventKindApplicationHealthReportExpired FabricEventKind = original.FabricEventKindApplicationHealthReportExpired - FabricEventKindApplicationUpgradeComplete FabricEventKind = original.FabricEventKindApplicationUpgradeComplete - FabricEventKindApplicationUpgradeDomainComplete FabricEventKind = original.FabricEventKindApplicationUpgradeDomainComplete - FabricEventKindApplicationUpgradeRollbackComplete FabricEventKind = original.FabricEventKindApplicationUpgradeRollbackComplete - FabricEventKindApplicationUpgradeRollbackStart FabricEventKind = original.FabricEventKindApplicationUpgradeRollbackStart - FabricEventKindApplicationUpgradeStart FabricEventKind = original.FabricEventKindApplicationUpgradeStart - FabricEventKindChaosMovePrimaryFaultScheduled FabricEventKind = original.FabricEventKindChaosMovePrimaryFaultScheduled - FabricEventKindChaosMoveSecondaryFaultScheduled FabricEventKind = original.FabricEventKindChaosMoveSecondaryFaultScheduled - FabricEventKindChaosRemoveReplicaFaultCompleted FabricEventKind = original.FabricEventKindChaosRemoveReplicaFaultCompleted - FabricEventKindChaosRemoveReplicaFaultScheduled FabricEventKind = original.FabricEventKindChaosRemoveReplicaFaultScheduled - FabricEventKindChaosRestartCodePackageFaultCompleted FabricEventKind = original.FabricEventKindChaosRestartCodePackageFaultCompleted - FabricEventKindChaosRestartCodePackageFaultScheduled FabricEventKind = original.FabricEventKindChaosRestartCodePackageFaultScheduled - FabricEventKindChaosRestartNodeFaultCompleted FabricEventKind = original.FabricEventKindChaosRestartNodeFaultCompleted - FabricEventKindChaosRestartNodeFaultScheduled FabricEventKind = original.FabricEventKindChaosRestartNodeFaultScheduled - FabricEventKindChaosRestartReplicaFaultScheduled FabricEventKind = original.FabricEventKindChaosRestartReplicaFaultScheduled - FabricEventKindChaosStarted FabricEventKind = original.FabricEventKindChaosStarted - FabricEventKindChaosStopped FabricEventKind = original.FabricEventKindChaosStopped - FabricEventKindClusterEvent FabricEventKind = original.FabricEventKindClusterEvent - FabricEventKindClusterHealthReportCreated FabricEventKind = original.FabricEventKindClusterHealthReportCreated - FabricEventKindClusterHealthReportExpired FabricEventKind = original.FabricEventKindClusterHealthReportExpired - FabricEventKindClusterUpgradeComplete FabricEventKind = original.FabricEventKindClusterUpgradeComplete - FabricEventKindClusterUpgradeDomainComplete FabricEventKind = original.FabricEventKindClusterUpgradeDomainComplete - FabricEventKindClusterUpgradeRollbackComplete FabricEventKind = original.FabricEventKindClusterUpgradeRollbackComplete - FabricEventKindClusterUpgradeRollbackStart FabricEventKind = original.FabricEventKindClusterUpgradeRollbackStart - FabricEventKindClusterUpgradeStart FabricEventKind = original.FabricEventKindClusterUpgradeStart - FabricEventKindContainerDeactivated FabricEventKind = original.FabricEventKindContainerDeactivated - FabricEventKindContainerInstanceEvent FabricEventKind = original.FabricEventKindContainerInstanceEvent - FabricEventKindDeployedApplicationHealthReportCreated FabricEventKind = original.FabricEventKindDeployedApplicationHealthReportCreated - FabricEventKindDeployedApplicationHealthReportExpired FabricEventKind = original.FabricEventKindDeployedApplicationHealthReportExpired - FabricEventKindDeployedServiceHealthReportCreated FabricEventKind = original.FabricEventKindDeployedServiceHealthReportCreated - FabricEventKindDeployedServiceHealthReportExpired FabricEventKind = original.FabricEventKindDeployedServiceHealthReportExpired - FabricEventKindNodeAborted FabricEventKind = original.FabricEventKindNodeAborted - FabricEventKindNodeAborting FabricEventKind = original.FabricEventKindNodeAborting - FabricEventKindNodeAdded FabricEventKind = original.FabricEventKindNodeAdded - FabricEventKindNodeClose FabricEventKind = original.FabricEventKindNodeClose - FabricEventKindNodeClosing FabricEventKind = original.FabricEventKindNodeClosing - FabricEventKindNodeDeactivateComplete FabricEventKind = original.FabricEventKindNodeDeactivateComplete - FabricEventKindNodeDeactivateStart FabricEventKind = original.FabricEventKindNodeDeactivateStart - FabricEventKindNodeDown FabricEventKind = original.FabricEventKindNodeDown - FabricEventKindNodeEvent FabricEventKind = original.FabricEventKindNodeEvent - FabricEventKindNodeHealthReportCreated FabricEventKind = original.FabricEventKindNodeHealthReportCreated - FabricEventKindNodeHealthReportExpired FabricEventKind = original.FabricEventKindNodeHealthReportExpired - FabricEventKindNodeOpenedSuccess FabricEventKind = original.FabricEventKindNodeOpenedSuccess - FabricEventKindNodeOpenFailed FabricEventKind = original.FabricEventKindNodeOpenFailed - FabricEventKindNodeOpening FabricEventKind = original.FabricEventKindNodeOpening - FabricEventKindNodeRemoved FabricEventKind = original.FabricEventKindNodeRemoved - FabricEventKindNodeUp FabricEventKind = original.FabricEventKindNodeUp - FabricEventKindPartitionAnalysisEvent FabricEventKind = original.FabricEventKindPartitionAnalysisEvent - FabricEventKindPartitionEvent FabricEventKind = original.FabricEventKindPartitionEvent - FabricEventKindPartitionHealthReportCreated FabricEventKind = original.FabricEventKindPartitionHealthReportCreated - FabricEventKindPartitionHealthReportExpired FabricEventKind = original.FabricEventKindPartitionHealthReportExpired - FabricEventKindPartitionPrimaryMoveAnalysis FabricEventKind = original.FabricEventKindPartitionPrimaryMoveAnalysis - FabricEventKindPartitionReconfigurationCompleted FabricEventKind = original.FabricEventKindPartitionReconfigurationCompleted - FabricEventKindProcessDeactivated FabricEventKind = original.FabricEventKindProcessDeactivated - FabricEventKindReplicaEvent FabricEventKind = original.FabricEventKindReplicaEvent - FabricEventKindServiceCreated FabricEventKind = original.FabricEventKindServiceCreated - FabricEventKindServiceDeleted FabricEventKind = original.FabricEventKindServiceDeleted - FabricEventKindServiceEvent FabricEventKind = original.FabricEventKindServiceEvent - FabricEventKindServiceHealthReportCreated FabricEventKind = original.FabricEventKindServiceHealthReportCreated - FabricEventKindServiceHealthReportExpired FabricEventKind = original.FabricEventKindServiceHealthReportExpired - FabricEventKindStatefulReplicaHealthReportCreated FabricEventKind = original.FabricEventKindStatefulReplicaHealthReportCreated - FabricEventKindStatefulReplicaHealthReportExpired FabricEventKind = original.FabricEventKindStatefulReplicaHealthReportExpired - FabricEventKindStatelessReplicaHealthReportCreated FabricEventKind = original.FabricEventKindStatelessReplicaHealthReportCreated - FabricEventKindStatelessReplicaHealthReportExpired FabricEventKind = original.FabricEventKindStatelessReplicaHealthReportExpired + FabricEventKindApplicationContainerInstanceExited FabricEventKind = original.FabricEventKindApplicationContainerInstanceExited + FabricEventKindApplicationCreated FabricEventKind = original.FabricEventKindApplicationCreated + FabricEventKindApplicationDeleted FabricEventKind = original.FabricEventKindApplicationDeleted + FabricEventKindApplicationEvent FabricEventKind = original.FabricEventKindApplicationEvent + FabricEventKindApplicationHealthReportExpired FabricEventKind = original.FabricEventKindApplicationHealthReportExpired + FabricEventKindApplicationNewHealthReport FabricEventKind = original.FabricEventKindApplicationNewHealthReport + FabricEventKindApplicationProcessExited FabricEventKind = original.FabricEventKindApplicationProcessExited + FabricEventKindApplicationUpgradeCompleted FabricEventKind = original.FabricEventKindApplicationUpgradeCompleted + FabricEventKindApplicationUpgradeDomainCompleted FabricEventKind = original.FabricEventKindApplicationUpgradeDomainCompleted + FabricEventKindApplicationUpgradeRollbackCompleted FabricEventKind = original.FabricEventKindApplicationUpgradeRollbackCompleted + FabricEventKindApplicationUpgradeRollbackStarted FabricEventKind = original.FabricEventKindApplicationUpgradeRollbackStarted + FabricEventKindApplicationUpgradeStarted FabricEventKind = original.FabricEventKindApplicationUpgradeStarted + FabricEventKindChaosCodePackageRestartScheduled FabricEventKind = original.FabricEventKindChaosCodePackageRestartScheduled + FabricEventKindChaosNodeRestartScheduled FabricEventKind = original.FabricEventKindChaosNodeRestartScheduled + FabricEventKindChaosPartitionPrimaryMoveScheduled FabricEventKind = original.FabricEventKindChaosPartitionPrimaryMoveScheduled + FabricEventKindChaosPartitionSecondaryMoveScheduled FabricEventKind = original.FabricEventKindChaosPartitionSecondaryMoveScheduled + FabricEventKindChaosReplicaRemovalScheduled FabricEventKind = original.FabricEventKindChaosReplicaRemovalScheduled + FabricEventKindChaosReplicaRestartScheduled FabricEventKind = original.FabricEventKindChaosReplicaRestartScheduled + FabricEventKindChaosStarted FabricEventKind = original.FabricEventKindChaosStarted + FabricEventKindChaosStopped FabricEventKind = original.FabricEventKindChaosStopped + FabricEventKindClusterEvent FabricEventKind = original.FabricEventKindClusterEvent + FabricEventKindClusterHealthReportExpired FabricEventKind = original.FabricEventKindClusterHealthReportExpired + FabricEventKindClusterNewHealthReport FabricEventKind = original.FabricEventKindClusterNewHealthReport + FabricEventKindClusterUpgradeCompleted FabricEventKind = original.FabricEventKindClusterUpgradeCompleted + FabricEventKindClusterUpgradeDomainCompleted FabricEventKind = original.FabricEventKindClusterUpgradeDomainCompleted + FabricEventKindClusterUpgradeRollbackCompleted FabricEventKind = original.FabricEventKindClusterUpgradeRollbackCompleted + FabricEventKindClusterUpgradeRollbackStarted FabricEventKind = original.FabricEventKindClusterUpgradeRollbackStarted + FabricEventKindClusterUpgradeStarted FabricEventKind = original.FabricEventKindClusterUpgradeStarted + FabricEventKindContainerInstanceEvent FabricEventKind = original.FabricEventKindContainerInstanceEvent + FabricEventKindDeployedApplicationHealthReportExpired FabricEventKind = original.FabricEventKindDeployedApplicationHealthReportExpired + FabricEventKindDeployedApplicationNewHealthReport FabricEventKind = original.FabricEventKindDeployedApplicationNewHealthReport + FabricEventKindDeployedServicePackageHealthReportExpired FabricEventKind = original.FabricEventKindDeployedServicePackageHealthReportExpired + FabricEventKindDeployedServicePackageNewHealthReport FabricEventKind = original.FabricEventKindDeployedServicePackageNewHealthReport + FabricEventKindNodeAborted FabricEventKind = original.FabricEventKindNodeAborted + FabricEventKindNodeAddedToCluster FabricEventKind = original.FabricEventKindNodeAddedToCluster + FabricEventKindNodeClosed FabricEventKind = original.FabricEventKindNodeClosed + FabricEventKindNodeDeactivateCompleted FabricEventKind = original.FabricEventKindNodeDeactivateCompleted + FabricEventKindNodeDeactivateStarted FabricEventKind = original.FabricEventKindNodeDeactivateStarted + FabricEventKindNodeDown FabricEventKind = original.FabricEventKindNodeDown + FabricEventKindNodeEvent FabricEventKind = original.FabricEventKindNodeEvent + FabricEventKindNodeHealthReportExpired FabricEventKind = original.FabricEventKindNodeHealthReportExpired + FabricEventKindNodeNewHealthReport FabricEventKind = original.FabricEventKindNodeNewHealthReport + FabricEventKindNodeOpenFailed FabricEventKind = original.FabricEventKindNodeOpenFailed + FabricEventKindNodeOpenSucceeded FabricEventKind = original.FabricEventKindNodeOpenSucceeded + FabricEventKindNodeRemovedFromCluster FabricEventKind = original.FabricEventKindNodeRemovedFromCluster + FabricEventKindNodeUp FabricEventKind = original.FabricEventKindNodeUp + FabricEventKindPartitionAnalysisEvent FabricEventKind = original.FabricEventKindPartitionAnalysisEvent + FabricEventKindPartitionEvent FabricEventKind = original.FabricEventKindPartitionEvent + FabricEventKindPartitionHealthReportExpired FabricEventKind = original.FabricEventKindPartitionHealthReportExpired + FabricEventKindPartitionNewHealthReport FabricEventKind = original.FabricEventKindPartitionNewHealthReport + FabricEventKindPartitionPrimaryMoveAnalysis FabricEventKind = original.FabricEventKindPartitionPrimaryMoveAnalysis + FabricEventKindPartitionReconfigured FabricEventKind = original.FabricEventKindPartitionReconfigured + FabricEventKindReplicaEvent FabricEventKind = original.FabricEventKindReplicaEvent + FabricEventKindServiceCreated FabricEventKind = original.FabricEventKindServiceCreated + FabricEventKindServiceDeleted FabricEventKind = original.FabricEventKindServiceDeleted + FabricEventKindServiceEvent FabricEventKind = original.FabricEventKindServiceEvent + FabricEventKindServiceHealthReportExpired FabricEventKind = original.FabricEventKindServiceHealthReportExpired + FabricEventKindServiceNewHealthReport FabricEventKind = original.FabricEventKindServiceNewHealthReport + FabricEventKindStatefulReplicaHealthReportExpired FabricEventKind = original.FabricEventKindStatefulReplicaHealthReportExpired + FabricEventKindStatefulReplicaNewHealthReport FabricEventKind = original.FabricEventKindStatefulReplicaNewHealthReport + FabricEventKindStatelessReplicaHealthReportExpired FabricEventKind = original.FabricEventKindStatelessReplicaHealthReportExpired + FabricEventKindStatelessReplicaNewHealthReport FabricEventKind = original.FabricEventKindStatelessReplicaNewHealthReport ) type FabricReplicaStatus = original.FabricReplicaStatus @@ -472,6 +510,12 @@ const ( UpgradeDomainTimeout FailureReason = original.UpgradeDomainTimeout ) +type HeaderMatchType = original.HeaderMatchType + +const ( + Exact HeaderMatchType = original.Exact +) + type HealthEvaluationKind = original.HealthEvaluationKind const ( @@ -561,6 +605,34 @@ const ( KindUpgradeDomainNodes Kind = original.KindUpgradeDomainNodes ) +type KindBasicApplicationScopedVolumeCreationParameters = original.KindBasicApplicationScopedVolumeCreationParameters + +const ( + KindApplicationScopedVolumeCreationParameters KindBasicApplicationScopedVolumeCreationParameters = original.KindApplicationScopedVolumeCreationParameters + KindServiceFabricVolumeDisk KindBasicApplicationScopedVolumeCreationParameters = original.KindServiceFabricVolumeDisk +) + +type KindBasicAutoScalingMechanism = original.KindBasicAutoScalingMechanism + +const ( + KindAddRemoveReplica KindBasicAutoScalingMechanism = original.KindAddRemoveReplica + KindAutoScalingMechanism KindBasicAutoScalingMechanism = original.KindAutoScalingMechanism +) + +type KindBasicAutoScalingMetric = original.KindBasicAutoScalingMetric + +const ( + KindAutoScalingMetric KindBasicAutoScalingMetric = original.KindAutoScalingMetric + KindResource KindBasicAutoScalingMetric = original.KindResource +) + +type KindBasicAutoScalingTrigger = original.KindBasicAutoScalingTrigger + +const ( + KindAutoScalingTrigger KindBasicAutoScalingTrigger = original.KindAutoScalingTrigger + KindAverageLoad KindBasicAutoScalingTrigger = original.KindAverageLoad +) + type KindBasicBackupConfigurationInfo = original.KindBasicBackupConfigurationInfo const ( @@ -582,78 +654,87 @@ const ( KindWaiting KindBasicChaosEvent = original.KindWaiting ) +type KindBasicDiagnosticsSinkProperties = original.KindBasicDiagnosticsSinkProperties + +const ( + KindAzureInternalMonitoringPipeline KindBasicDiagnosticsSinkProperties = original.KindAzureInternalMonitoringPipeline + KindDiagnosticsSinkProperties KindBasicDiagnosticsSinkProperties = original.KindDiagnosticsSinkProperties +) + type KindBasicFabricEvent = original.KindBasicFabricEvent const ( - KindApplicationCreated KindBasicFabricEvent = original.KindApplicationCreated - KindApplicationDeleted KindBasicFabricEvent = original.KindApplicationDeleted - KindApplicationEvent KindBasicFabricEvent = original.KindApplicationEvent - KindApplicationHealthReportCreated KindBasicFabricEvent = original.KindApplicationHealthReportCreated - KindApplicationHealthReportExpired KindBasicFabricEvent = original.KindApplicationHealthReportExpired - KindApplicationUpgradeComplete KindBasicFabricEvent = original.KindApplicationUpgradeComplete - KindApplicationUpgradeDomainComplete KindBasicFabricEvent = original.KindApplicationUpgradeDomainComplete - KindApplicationUpgradeRollbackComplete KindBasicFabricEvent = original.KindApplicationUpgradeRollbackComplete - KindApplicationUpgradeRollbackStart KindBasicFabricEvent = original.KindApplicationUpgradeRollbackStart - KindApplicationUpgradeStart KindBasicFabricEvent = original.KindApplicationUpgradeStart - KindChaosMovePrimaryFaultScheduled KindBasicFabricEvent = original.KindChaosMovePrimaryFaultScheduled - KindChaosMoveSecondaryFaultScheduled KindBasicFabricEvent = original.KindChaosMoveSecondaryFaultScheduled - KindChaosRemoveReplicaFaultCompleted KindBasicFabricEvent = original.KindChaosRemoveReplicaFaultCompleted - KindChaosRemoveReplicaFaultScheduled KindBasicFabricEvent = original.KindChaosRemoveReplicaFaultScheduled - KindChaosRestartCodePackageFaultCompleted KindBasicFabricEvent = original.KindChaosRestartCodePackageFaultCompleted - KindChaosRestartCodePackageFaultScheduled KindBasicFabricEvent = original.KindChaosRestartCodePackageFaultScheduled - KindChaosRestartNodeFaultCompleted KindBasicFabricEvent = original.KindChaosRestartNodeFaultCompleted - KindChaosRestartNodeFaultScheduled KindBasicFabricEvent = original.KindChaosRestartNodeFaultScheduled - KindChaosRestartReplicaFaultScheduled KindBasicFabricEvent = original.KindChaosRestartReplicaFaultScheduled - KindChaosStarted KindBasicFabricEvent = original.KindChaosStarted - KindChaosStopped KindBasicFabricEvent = original.KindChaosStopped - KindClusterEvent KindBasicFabricEvent = original.KindClusterEvent - KindClusterHealthReportCreated KindBasicFabricEvent = original.KindClusterHealthReportCreated - KindClusterHealthReportExpired KindBasicFabricEvent = original.KindClusterHealthReportExpired - KindClusterUpgradeComplete KindBasicFabricEvent = original.KindClusterUpgradeComplete - KindClusterUpgradeDomainComplete KindBasicFabricEvent = original.KindClusterUpgradeDomainComplete - KindClusterUpgradeRollbackComplete KindBasicFabricEvent = original.KindClusterUpgradeRollbackComplete - KindClusterUpgradeRollbackStart KindBasicFabricEvent = original.KindClusterUpgradeRollbackStart - KindClusterUpgradeStart KindBasicFabricEvent = original.KindClusterUpgradeStart - KindContainerDeactivated KindBasicFabricEvent = original.KindContainerDeactivated - KindContainerInstanceEvent KindBasicFabricEvent = original.KindContainerInstanceEvent - KindDeployedApplicationHealthReportCreated KindBasicFabricEvent = original.KindDeployedApplicationHealthReportCreated - KindDeployedApplicationHealthReportExpired KindBasicFabricEvent = original.KindDeployedApplicationHealthReportExpired - KindDeployedServiceHealthReportCreated KindBasicFabricEvent = original.KindDeployedServiceHealthReportCreated - KindDeployedServiceHealthReportExpired KindBasicFabricEvent = original.KindDeployedServiceHealthReportExpired - KindFabricEvent KindBasicFabricEvent = original.KindFabricEvent - KindNodeAborted KindBasicFabricEvent = original.KindNodeAborted - KindNodeAborting KindBasicFabricEvent = original.KindNodeAborting - KindNodeAdded KindBasicFabricEvent = original.KindNodeAdded - KindNodeClose KindBasicFabricEvent = original.KindNodeClose - KindNodeClosing KindBasicFabricEvent = original.KindNodeClosing - KindNodeDeactivateComplete KindBasicFabricEvent = original.KindNodeDeactivateComplete - KindNodeDeactivateStart KindBasicFabricEvent = original.KindNodeDeactivateStart - KindNodeDown KindBasicFabricEvent = original.KindNodeDown - KindNodeEvent KindBasicFabricEvent = original.KindNodeEvent - KindNodeHealthReportCreated KindBasicFabricEvent = original.KindNodeHealthReportCreated - KindNodeHealthReportExpired KindBasicFabricEvent = original.KindNodeHealthReportExpired - KindNodeOpenedSuccess KindBasicFabricEvent = original.KindNodeOpenedSuccess - KindNodeOpenFailed KindBasicFabricEvent = original.KindNodeOpenFailed - KindNodeOpening KindBasicFabricEvent = original.KindNodeOpening - KindNodeRemoved KindBasicFabricEvent = original.KindNodeRemoved - KindNodeUp KindBasicFabricEvent = original.KindNodeUp - KindPartitionAnalysisEvent KindBasicFabricEvent = original.KindPartitionAnalysisEvent - KindPartitionEvent KindBasicFabricEvent = original.KindPartitionEvent - KindPartitionHealthReportCreated KindBasicFabricEvent = original.KindPartitionHealthReportCreated - KindPartitionHealthReportExpired KindBasicFabricEvent = original.KindPartitionHealthReportExpired - KindPartitionPrimaryMoveAnalysis KindBasicFabricEvent = original.KindPartitionPrimaryMoveAnalysis - KindPartitionReconfigurationCompleted KindBasicFabricEvent = original.KindPartitionReconfigurationCompleted - KindProcessDeactivated KindBasicFabricEvent = original.KindProcessDeactivated - KindReplicaEvent KindBasicFabricEvent = original.KindReplicaEvent - KindServiceCreated KindBasicFabricEvent = original.KindServiceCreated - KindServiceDeleted KindBasicFabricEvent = original.KindServiceDeleted - KindServiceEvent KindBasicFabricEvent = original.KindServiceEvent - KindServiceHealthReportCreated KindBasicFabricEvent = original.KindServiceHealthReportCreated - KindServiceHealthReportExpired KindBasicFabricEvent = original.KindServiceHealthReportExpired - KindStatefulReplicaHealthReportCreated KindBasicFabricEvent = original.KindStatefulReplicaHealthReportCreated - KindStatefulReplicaHealthReportExpired KindBasicFabricEvent = original.KindStatefulReplicaHealthReportExpired - KindStatelessReplicaHealthReportCreated KindBasicFabricEvent = original.KindStatelessReplicaHealthReportCreated - KindStatelessReplicaHealthReportExpired KindBasicFabricEvent = original.KindStatelessReplicaHealthReportExpired + KindApplicationContainerInstanceExited KindBasicFabricEvent = original.KindApplicationContainerInstanceExited + KindApplicationCreated KindBasicFabricEvent = original.KindApplicationCreated + KindApplicationDeleted KindBasicFabricEvent = original.KindApplicationDeleted + KindApplicationEvent KindBasicFabricEvent = original.KindApplicationEvent + KindApplicationHealthReportExpired KindBasicFabricEvent = original.KindApplicationHealthReportExpired + KindApplicationNewHealthReport KindBasicFabricEvent = original.KindApplicationNewHealthReport + KindApplicationProcessExited KindBasicFabricEvent = original.KindApplicationProcessExited + KindApplicationUpgradeCompleted KindBasicFabricEvent = original.KindApplicationUpgradeCompleted + KindApplicationUpgradeDomainCompleted KindBasicFabricEvent = original.KindApplicationUpgradeDomainCompleted + KindApplicationUpgradeRollbackCompleted KindBasicFabricEvent = original.KindApplicationUpgradeRollbackCompleted + KindApplicationUpgradeRollbackStarted KindBasicFabricEvent = original.KindApplicationUpgradeRollbackStarted + KindApplicationUpgradeStarted KindBasicFabricEvent = original.KindApplicationUpgradeStarted + KindChaosCodePackageRestartScheduled KindBasicFabricEvent = original.KindChaosCodePackageRestartScheduled + KindChaosNodeRestartScheduled KindBasicFabricEvent = original.KindChaosNodeRestartScheduled + KindChaosPartitionPrimaryMoveScheduled KindBasicFabricEvent = original.KindChaosPartitionPrimaryMoveScheduled + KindChaosPartitionSecondaryMoveScheduled KindBasicFabricEvent = original.KindChaosPartitionSecondaryMoveScheduled + KindChaosReplicaRemovalScheduled KindBasicFabricEvent = original.KindChaosReplicaRemovalScheduled + KindChaosReplicaRestartScheduled KindBasicFabricEvent = original.KindChaosReplicaRestartScheduled + KindChaosStarted KindBasicFabricEvent = original.KindChaosStarted + KindChaosStopped KindBasicFabricEvent = original.KindChaosStopped + KindClusterEvent KindBasicFabricEvent = original.KindClusterEvent + KindClusterHealthReportExpired KindBasicFabricEvent = original.KindClusterHealthReportExpired + KindClusterNewHealthReport KindBasicFabricEvent = original.KindClusterNewHealthReport + KindClusterUpgradeCompleted KindBasicFabricEvent = original.KindClusterUpgradeCompleted + KindClusterUpgradeDomainCompleted KindBasicFabricEvent = original.KindClusterUpgradeDomainCompleted + KindClusterUpgradeRollbackCompleted KindBasicFabricEvent = original.KindClusterUpgradeRollbackCompleted + KindClusterUpgradeRollbackStarted KindBasicFabricEvent = original.KindClusterUpgradeRollbackStarted + KindClusterUpgradeStarted KindBasicFabricEvent = original.KindClusterUpgradeStarted + KindContainerInstanceEvent KindBasicFabricEvent = original.KindContainerInstanceEvent + KindDeployedApplicationHealthReportExpired KindBasicFabricEvent = original.KindDeployedApplicationHealthReportExpired + KindDeployedApplicationNewHealthReport KindBasicFabricEvent = original.KindDeployedApplicationNewHealthReport + KindDeployedServicePackageHealthReportExpired KindBasicFabricEvent = original.KindDeployedServicePackageHealthReportExpired + KindDeployedServicePackageNewHealthReport KindBasicFabricEvent = original.KindDeployedServicePackageNewHealthReport + KindFabricEvent KindBasicFabricEvent = original.KindFabricEvent + KindNodeAborted KindBasicFabricEvent = original.KindNodeAborted + KindNodeAddedToCluster KindBasicFabricEvent = original.KindNodeAddedToCluster + KindNodeClosed KindBasicFabricEvent = original.KindNodeClosed + KindNodeDeactivateCompleted KindBasicFabricEvent = original.KindNodeDeactivateCompleted + KindNodeDeactivateStarted KindBasicFabricEvent = original.KindNodeDeactivateStarted + KindNodeDown KindBasicFabricEvent = original.KindNodeDown + KindNodeEvent KindBasicFabricEvent = original.KindNodeEvent + KindNodeHealthReportExpired KindBasicFabricEvent = original.KindNodeHealthReportExpired + KindNodeNewHealthReport KindBasicFabricEvent = original.KindNodeNewHealthReport + KindNodeOpenFailed KindBasicFabricEvent = original.KindNodeOpenFailed + KindNodeOpenSucceeded KindBasicFabricEvent = original.KindNodeOpenSucceeded + KindNodeRemovedFromCluster KindBasicFabricEvent = original.KindNodeRemovedFromCluster + KindNodeUp KindBasicFabricEvent = original.KindNodeUp + KindPartitionAnalysisEvent KindBasicFabricEvent = original.KindPartitionAnalysisEvent + KindPartitionEvent KindBasicFabricEvent = original.KindPartitionEvent + KindPartitionHealthReportExpired KindBasicFabricEvent = original.KindPartitionHealthReportExpired + KindPartitionNewHealthReport KindBasicFabricEvent = original.KindPartitionNewHealthReport + KindPartitionPrimaryMoveAnalysis KindBasicFabricEvent = original.KindPartitionPrimaryMoveAnalysis + KindPartitionReconfigured KindBasicFabricEvent = original.KindPartitionReconfigured + KindReplicaEvent KindBasicFabricEvent = original.KindReplicaEvent + KindServiceCreated KindBasicFabricEvent = original.KindServiceCreated + KindServiceDeleted KindBasicFabricEvent = original.KindServiceDeleted + KindServiceEvent KindBasicFabricEvent = original.KindServiceEvent + KindServiceHealthReportExpired KindBasicFabricEvent = original.KindServiceHealthReportExpired + KindServiceNewHealthReport KindBasicFabricEvent = original.KindServiceNewHealthReport + KindStatefulReplicaHealthReportExpired KindBasicFabricEvent = original.KindStatefulReplicaHealthReportExpired + KindStatefulReplicaNewHealthReport KindBasicFabricEvent = original.KindStatefulReplicaNewHealthReport + KindStatelessReplicaHealthReportExpired KindBasicFabricEvent = original.KindStatelessReplicaHealthReportExpired + KindStatelessReplicaNewHealthReport KindBasicFabricEvent = original.KindStatelessReplicaNewHealthReport +) + +type KindBasicNetworkResourcePropertiesBase = original.KindBasicNetworkResourcePropertiesBase + +const ( + KindLocal KindBasicNetworkResourcePropertiesBase = original.KindLocal + KindNetworkResourceProperties KindBasicNetworkResourcePropertiesBase = original.KindNetworkResourceProperties + KindNetworkResourcePropertiesBase KindBasicNetworkResourcePropertiesBase = original.KindNetworkResourcePropertiesBase ) type KindBasicPropertyBatchInfo = original.KindBasicPropertyBatchInfo @@ -756,6 +837,14 @@ const ( KindScalingTriggerDescription KindBasicScalingTriggerDescription = original.KindScalingTriggerDescription ) +type KindBasicSecretResourcePropertiesBase = original.KindBasicSecretResourcePropertiesBase + +const ( + KindInlinedValue KindBasicSecretResourcePropertiesBase = original.KindInlinedValue + KindSecretResourceProperties KindBasicSecretResourcePropertiesBase = original.KindSecretResourceProperties + KindSecretResourcePropertiesBase KindBasicSecretResourcePropertiesBase = original.KindSecretResourcePropertiesBase +) + type KindBasicServiceTypeDescription = original.KindBasicServiceTypeDescription const ( @@ -773,6 +862,12 @@ const ( Zero MoveCost = original.Zero ) +type NetworkKind = original.NetworkKind + +const ( + Local NetworkKind = original.Local +) + type NodeDeactivationIntent = original.NodeDeactivationIntent const ( @@ -845,6 +940,13 @@ const ( NodeUpgradePhaseUpgrading NodeUpgradePhase = original.NodeUpgradePhaseUpgrading ) +type OperatingSystemType = original.OperatingSystemType + +const ( + Linux OperatingSystemType = original.Linux + Windows OperatingSystemType = original.Windows +) + type OperationState = original.OperationState const ( @@ -1048,6 +1150,17 @@ const ( ReplicatorOperationNameWaitForCatchup ReplicatorOperationName = original.ReplicatorOperationNameWaitForCatchup ) +type ResourceStatus = original.ResourceStatus + +const ( + ResourceStatusCreating ResourceStatus = original.ResourceStatusCreating + ResourceStatusDeleting ResourceStatus = original.ResourceStatusDeleting + ResourceStatusFailed ResourceStatus = original.ResourceStatusFailed + ResourceStatusReady ResourceStatus = original.ResourceStatusReady + ResourceStatusUnknown ResourceStatus = original.ResourceStatusUnknown + ResourceStatusUpgrading ResourceStatus = original.ResourceStatusUpgrading +) + type RestartPartitionMode = original.RestartPartitionMode const ( @@ -1078,6 +1191,20 @@ const ( ResultStatusSucceeded ResultStatus = original.ResultStatusSucceeded ) +type RetentionPolicyType = original.RetentionPolicyType + +const ( + RetentionPolicyTypeBasic RetentionPolicyType = original.RetentionPolicyTypeBasic + RetentionPolicyTypeInvalid RetentionPolicyType = original.RetentionPolicyTypeInvalid +) + +type RetentionPolicyTypeBasicRetentionPolicyDescription = original.RetentionPolicyTypeBasicRetentionPolicyDescription + +const ( + RetentionPolicyTypeBasic1 RetentionPolicyTypeBasicRetentionPolicyDescription = original.RetentionPolicyTypeBasic1 + RetentionPolicyTypeRetentionPolicyDescription RetentionPolicyTypeBasicRetentionPolicyDescription = original.RetentionPolicyTypeRetentionPolicyDescription +) + type SafetyCheckKind = original.SafetyCheckKind const ( @@ -1115,6 +1242,12 @@ const ( ScheduleKindTimeBased ScheduleKind = original.ScheduleKindTimeBased ) +type SecretKind = original.SecretKind + +const ( + InlinedValue SecretKind = original.InlinedValue +) + type ServiceCorrelationScheme = original.ServiceCorrelationScheme const ( @@ -1300,6 +1433,14 @@ const ( ServiceTypeRegistrationStatusRegistered ServiceTypeRegistrationStatus = original.ServiceTypeRegistrationStatusRegistered ) +type SizeTypes = original.SizeTypes + +const ( + SizeTypesLarge SizeTypes = original.SizeTypesLarge + SizeTypesMedium SizeTypes = original.SizeTypesMedium + SizeTypesSmall SizeTypes = original.SizeTypesSmall +) + type State = original.State const ( @@ -1377,13 +1518,21 @@ const ( UpgradeTypeRollingForceRestart UpgradeType = original.UpgradeTypeRollingForceRestart ) +type VolumeProvider = original.VolumeProvider + +const ( + SFAzureFile VolumeProvider = original.SFAzureFile +) + type AadMetadata = original.AadMetadata type AadMetadataObject = original.AadMetadataObject type AddRemoveIncrementalNamedPartitionScalingMechanism = original.AddRemoveIncrementalNamedPartitionScalingMechanism +type AddRemoveReplicaScalingMechanism = original.AddRemoveReplicaScalingMechanism type AnalysisEventMetadata = original.AnalysisEventMetadata type ApplicationBackupConfigurationInfo = original.ApplicationBackupConfigurationInfo type ApplicationBackupEntity = original.ApplicationBackupEntity type ApplicationCapacityDescription = original.ApplicationCapacityDescription +type ApplicationContainerInstanceExitedEvent = original.ApplicationContainerInstanceExitedEvent type ApplicationCreatedEvent = original.ApplicationCreatedEvent type ApplicationDeletedEvent = original.ApplicationDeletedEvent type ApplicationDescription = original.ApplicationDescription @@ -1393,7 +1542,6 @@ type ApplicationHealthEvaluation = original.ApplicationHealthEvaluation type ApplicationHealthPolicies = original.ApplicationHealthPolicies type ApplicationHealthPolicy = original.ApplicationHealthPolicy type ApplicationHealthPolicyMapItem = original.ApplicationHealthPolicyMapItem -type ApplicationHealthReportCreatedEvent = original.ApplicationHealthReportCreatedEvent type ApplicationHealthReportExpiredEvent = original.ApplicationHealthReportExpiredEvent type ApplicationHealthState = original.ApplicationHealthState type ApplicationHealthStateChunk = original.ApplicationHealthStateChunk @@ -1403,27 +1551,40 @@ type ApplicationInfo = original.ApplicationInfo type ApplicationLoadInfo = original.ApplicationLoadInfo type ApplicationMetricDescription = original.ApplicationMetricDescription type ApplicationNameInfo = original.ApplicationNameInfo +type ApplicationNewHealthReportEvent = original.ApplicationNewHealthReportEvent type ApplicationParameter = original.ApplicationParameter +type ApplicationProcessExitedEvent = original.ApplicationProcessExitedEvent +type ApplicationProperties = original.ApplicationProperties +type ApplicationResourceDescription = original.ApplicationResourceDescription +type ApplicationScopedVolume = original.ApplicationScopedVolume +type ApplicationScopedVolumeCreationParameters = original.ApplicationScopedVolumeCreationParameters +type ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk = original.ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk type ApplicationTypeApplicationsHealthEvaluation = original.ApplicationTypeApplicationsHealthEvaluation type ApplicationTypeHealthPolicyMapItem = original.ApplicationTypeHealthPolicyMapItem type ApplicationTypeImageStorePath = original.ApplicationTypeImageStorePath type ApplicationTypeInfo = original.ApplicationTypeInfo type ApplicationTypeManifest = original.ApplicationTypeManifest -type ApplicationUpgradeCompleteEvent = original.ApplicationUpgradeCompleteEvent +type ApplicationUpgradeCompletedEvent = original.ApplicationUpgradeCompletedEvent type ApplicationUpgradeDescription = original.ApplicationUpgradeDescription -type ApplicationUpgradeDomainCompleteEvent = original.ApplicationUpgradeDomainCompleteEvent +type ApplicationUpgradeDomainCompletedEvent = original.ApplicationUpgradeDomainCompletedEvent type ApplicationUpgradeProgressInfo = original.ApplicationUpgradeProgressInfo -type ApplicationUpgradeRollbackCompleteEvent = original.ApplicationUpgradeRollbackCompleteEvent -type ApplicationUpgradeRollbackStartEvent = original.ApplicationUpgradeRollbackStartEvent -type ApplicationUpgradeStartEvent = original.ApplicationUpgradeStartEvent +type ApplicationUpgradeRollbackCompletedEvent = original.ApplicationUpgradeRollbackCompletedEvent +type ApplicationUpgradeRollbackStartedEvent = original.ApplicationUpgradeRollbackStartedEvent +type ApplicationUpgradeStartedEvent = original.ApplicationUpgradeStartedEvent type ApplicationUpgradeUpdateDescription = original.ApplicationUpgradeUpdateDescription type ApplicationsHealthEvaluation = original.ApplicationsHealthEvaluation +type AutoScalingMechanism = original.AutoScalingMechanism +type AutoScalingMetric = original.AutoScalingMetric +type AutoScalingPolicy = original.AutoScalingPolicy +type AutoScalingResourceMetric = original.AutoScalingResourceMetric +type AutoScalingTrigger = original.AutoScalingTrigger +type AverageLoadScalingTrigger = original.AverageLoadScalingTrigger type AveragePartitionLoadScalingTrigger = original.AveragePartitionLoadScalingTrigger type AverageServiceLoadScalingTrigger = original.AverageServiceLoadScalingTrigger type AzureBlobBackupStorageDescription = original.AzureBlobBackupStorageDescription +type AzureInternalMonitoringPipelineSinkDescription = original.AzureInternalMonitoringPipelineSinkDescription type BackupConfigurationInfo = original.BackupConfigurationInfo type BackupEntity = original.BackupEntity -type BackupEpoch = original.BackupEpoch type BackupInfo = original.BackupInfo type BackupPartitionDescription = original.BackupPartitionDescription type BackupPolicyDescription = original.BackupPolicyDescription @@ -1433,6 +1594,10 @@ type BackupStorageDescription = original.BackupStorageDescription type BackupSuspensionInfo = original.BackupSuspensionInfo type BaseClient = original.BaseClient type BasicApplicationEvent = original.BasicApplicationEvent +type BasicApplicationScopedVolumeCreationParameters = original.BasicApplicationScopedVolumeCreationParameters +type BasicAutoScalingMechanism = original.BasicAutoScalingMechanism +type BasicAutoScalingMetric = original.BasicAutoScalingMetric +type BasicAutoScalingTrigger = original.BasicAutoScalingTrigger type BasicBackupConfigurationInfo = original.BasicBackupConfigurationInfo type BasicBackupEntity = original.BasicBackupEntity type BasicBackupScheduleDescription = original.BasicBackupScheduleDescription @@ -1441,8 +1606,11 @@ type BasicChaosEvent = original.BasicChaosEvent type BasicClusterEvent = original.BasicClusterEvent type BasicDeployedServiceReplicaDetailInfo = original.BasicDeployedServiceReplicaDetailInfo type BasicDeployedServiceReplicaInfo = original.BasicDeployedServiceReplicaInfo +type BasicDiagnosticsSinkProperties = original.BasicDiagnosticsSinkProperties type BasicFabricEvent = original.BasicFabricEvent type BasicHealthEvaluation = original.BasicHealthEvaluation +type BasicNetworkResourceProperties = original.BasicNetworkResourceProperties +type BasicNetworkResourcePropertiesBase = original.BasicNetworkResourcePropertiesBase type BasicNodeEvent = original.BasicNodeEvent type BasicPartitionAnalysisEvent = original.BasicPartitionAnalysisEvent type BasicPartitionEvent = original.BasicPartitionEvent @@ -1461,10 +1629,14 @@ type BasicReplicaHealthState = original.BasicReplicaHealthState type BasicReplicaInfo = original.BasicReplicaInfo type BasicReplicaStatusBase = original.BasicReplicaStatusBase type BasicReplicatorStatus = original.BasicReplicatorStatus +type BasicRetentionPolicyDescription = original.BasicRetentionPolicyDescription +type BasicRetentionPolicyDescription = original.BasicRetentionPolicyDescription type BasicSafetyCheck = original.BasicSafetyCheck type BasicScalingMechanismDescription = original.BasicScalingMechanismDescription type BasicScalingTriggerDescription = original.BasicScalingTriggerDescription type BasicSecondaryReplicatorStatus = original.BasicSecondaryReplicatorStatus +type BasicSecretResourceProperties = original.BasicSecretResourceProperties +type BasicSecretResourcePropertiesBase = original.BasicSecretResourcePropertiesBase type BasicServiceDescription = original.BasicServiceDescription type BasicServiceEvent = original.BasicServiceEvent type BasicServiceInfo = original.BasicServiceInfo @@ -1474,21 +1646,18 @@ type BasicServiceTypeDescription = original.BasicServiceTypeDescription type BasicServiceUpdateDescription = original.BasicServiceUpdateDescription type BinaryPropertyValue = original.BinaryPropertyValue type Chaos = original.Chaos +type ChaosCodePackageRestartScheduledEvent = original.ChaosCodePackageRestartScheduledEvent type ChaosContext = original.ChaosContext type ChaosEvent = original.ChaosEvent type ChaosEventWrapper = original.ChaosEventWrapper type ChaosEventsSegment = original.ChaosEventsSegment -type ChaosMovePrimaryFaultScheduledEvent = original.ChaosMovePrimaryFaultScheduledEvent -type ChaosMoveSecondaryFaultScheduledEvent = original.ChaosMoveSecondaryFaultScheduledEvent +type ChaosNodeRestartScheduledEvent = original.ChaosNodeRestartScheduledEvent type ChaosParameters = original.ChaosParameters type ChaosParametersDictionaryItem = original.ChaosParametersDictionaryItem -type ChaosRemoveReplicaFaultCompletedEvent = original.ChaosRemoveReplicaFaultCompletedEvent -type ChaosRemoveReplicaFaultScheduledEvent = original.ChaosRemoveReplicaFaultScheduledEvent -type ChaosRestartCodePackageFaultCompletedEvent = original.ChaosRestartCodePackageFaultCompletedEvent -type ChaosRestartCodePackageFaultScheduledEvent = original.ChaosRestartCodePackageFaultScheduledEvent -type ChaosRestartNodeFaultCompletedEvent = original.ChaosRestartNodeFaultCompletedEvent -type ChaosRestartNodeFaultScheduledEvent = original.ChaosRestartNodeFaultScheduledEvent -type ChaosRestartReplicaFaultScheduledEvent = original.ChaosRestartReplicaFaultScheduledEvent +type ChaosPartitionPrimaryMoveScheduledEvent = original.ChaosPartitionPrimaryMoveScheduledEvent +type ChaosPartitionSecondaryMoveScheduledEvent = original.ChaosPartitionSecondaryMoveScheduledEvent +type ChaosReplicaRemovalScheduledEvent = original.ChaosReplicaRemovalScheduledEvent +type ChaosReplicaRestartScheduledEvent = original.ChaosReplicaRestartScheduledEvent type ChaosSchedule = original.ChaosSchedule type ChaosScheduleDescription = original.ChaosScheduleDescription type ChaosScheduleJob = original.ChaosScheduleJob @@ -1508,17 +1677,18 @@ type ClusterHealthChunk = original.ClusterHealthChunk type ClusterHealthChunkQueryDescription = original.ClusterHealthChunkQueryDescription type ClusterHealthPolicies = original.ClusterHealthPolicies type ClusterHealthPolicy = original.ClusterHealthPolicy -type ClusterHealthReportCreatedEvent = original.ClusterHealthReportCreatedEvent type ClusterHealthReportExpiredEvent = original.ClusterHealthReportExpiredEvent type ClusterManifest = original.ClusterManifest -type ClusterUpgradeCompleteEvent = original.ClusterUpgradeCompleteEvent +type ClusterNewHealthReportEvent = original.ClusterNewHealthReportEvent +type ClusterUpgradeCompletedEvent = original.ClusterUpgradeCompletedEvent type ClusterUpgradeDescriptionObject = original.ClusterUpgradeDescriptionObject -type ClusterUpgradeDomainCompleteEvent = original.ClusterUpgradeDomainCompleteEvent +type ClusterUpgradeDomainCompletedEvent = original.ClusterUpgradeDomainCompletedEvent type ClusterUpgradeHealthPolicyObject = original.ClusterUpgradeHealthPolicyObject type ClusterUpgradeProgressObject = original.ClusterUpgradeProgressObject -type ClusterUpgradeRollbackCompleteEvent = original.ClusterUpgradeRollbackCompleteEvent -type ClusterUpgradeRollbackStartEvent = original.ClusterUpgradeRollbackStartEvent -type ClusterUpgradeStartEvent = original.ClusterUpgradeStartEvent +type ClusterUpgradeRollbackCompletedEvent = original.ClusterUpgradeRollbackCompletedEvent +type ClusterUpgradeRollbackStartedEvent = original.ClusterUpgradeRollbackStartedEvent +type ClusterUpgradeStartedEvent = original.ClusterUpgradeStartedEvent +type ClusterVersion = original.ClusterVersion type CodePackageEntryPoint = original.CodePackageEntryPoint type CodePackageEntryPointStatistics = original.CodePackageEntryPointStatistics type ComposeDeploymentStatusInfo = original.ComposeDeploymentStatusInfo @@ -1527,9 +1697,13 @@ type ComposeDeploymentUpgradeProgressInfo = original.ComposeDeploymentUpgradePro type ContainerAPIRequestBody = original.ContainerAPIRequestBody type ContainerAPIResponse = original.ContainerAPIResponse type ContainerAPIResult = original.ContainerAPIResult -type ContainerDeactivatedEvent = original.ContainerDeactivatedEvent +type ContainerCodePackageProperties = original.ContainerCodePackageProperties +type ContainerEvent = original.ContainerEvent type ContainerInstanceEvent = original.ContainerInstanceEvent +type ContainerInstanceView = original.ContainerInstanceView +type ContainerLabel = original.ContainerLabel type ContainerLogs = original.ContainerLogs +type ContainerState = original.ContainerState type CreateComposeDeploymentDescription = original.CreateComposeDeploymentDescription type CurrentUpgradeDomainProgressInfo = original.CurrentUpgradeDomainProgressInfo type DeactivationIntentDescription = original.DeactivationIntentDescription @@ -1538,24 +1712,24 @@ type DeltaNodesCheckHealthEvaluation = original.DeltaNodesCheckHealthEvaluation type DeployServicePackageToNodeDescription = original.DeployServicePackageToNodeDescription type DeployedApplicationHealth = original.DeployedApplicationHealth type DeployedApplicationHealthEvaluation = original.DeployedApplicationHealthEvaluation -type DeployedApplicationHealthReportCreatedEvent = original.DeployedApplicationHealthReportCreatedEvent type DeployedApplicationHealthReportExpiredEvent = original.DeployedApplicationHealthReportExpiredEvent type DeployedApplicationHealthState = original.DeployedApplicationHealthState type DeployedApplicationHealthStateChunk = original.DeployedApplicationHealthStateChunk type DeployedApplicationHealthStateChunkList = original.DeployedApplicationHealthStateChunkList type DeployedApplicationHealthStateFilter = original.DeployedApplicationHealthStateFilter type DeployedApplicationInfo = original.DeployedApplicationInfo +type DeployedApplicationNewHealthReportEvent = original.DeployedApplicationNewHealthReportEvent type DeployedApplicationsHealthEvaluation = original.DeployedApplicationsHealthEvaluation type DeployedCodePackageInfo = original.DeployedCodePackageInfo -type DeployedServiceHealthReportCreatedEvent = original.DeployedServiceHealthReportCreatedEvent -type DeployedServiceHealthReportExpiredEvent = original.DeployedServiceHealthReportExpiredEvent type DeployedServicePackageHealth = original.DeployedServicePackageHealth type DeployedServicePackageHealthEvaluation = original.DeployedServicePackageHealthEvaluation +type DeployedServicePackageHealthReportExpiredEvent = original.DeployedServicePackageHealthReportExpiredEvent type DeployedServicePackageHealthState = original.DeployedServicePackageHealthState type DeployedServicePackageHealthStateChunk = original.DeployedServicePackageHealthStateChunk type DeployedServicePackageHealthStateChunkList = original.DeployedServicePackageHealthStateChunkList type DeployedServicePackageHealthStateFilter = original.DeployedServicePackageHealthStateFilter type DeployedServicePackageInfo = original.DeployedServicePackageInfo +type DeployedServicePackageNewHealthReportEvent = original.DeployedServicePackageNewHealthReportEvent type DeployedServicePackagesHealthEvaluation = original.DeployedServicePackagesHealthEvaluation type DeployedServiceReplicaDetailInfo = original.DeployedServiceReplicaDetailInfo type DeployedServiceReplicaDetailInfoModel = original.DeployedServiceReplicaDetailInfoModel @@ -1565,8 +1739,14 @@ type DeployedStatefulServiceReplicaDetailInfo = original.DeployedStatefulService type DeployedStatefulServiceReplicaInfo = original.DeployedStatefulServiceReplicaInfo type DeployedStatelessServiceInstanceDetailInfo = original.DeployedStatelessServiceInstanceDetailInfo type DeployedStatelessServiceInstanceInfo = original.DeployedStatelessServiceInstanceInfo +type DiagnosticsDescription = original.DiagnosticsDescription +type DiagnosticsRef = original.DiagnosticsRef +type DiagnosticsSinkProperties = original.DiagnosticsSinkProperties +type DisableBackupDescription = original.DisableBackupDescription type DoublePropertyValue = original.DoublePropertyValue type EnableBackupDescription = original.EnableBackupDescription +type EndpointProperties = original.EndpointProperties +type EndpointRef = original.EndpointRef type EnsureAvailabilitySafetyCheck = original.EnsureAvailabilitySafetyCheck type EnsurePartitionQurumSafetyCheck = original.EnsurePartitionQurumSafetyCheck type EntityHealth = original.EntityHealth @@ -1574,6 +1754,7 @@ type EntityHealthState = original.EntityHealthState type EntityHealthStateChunk = original.EntityHealthStateChunk type EntityHealthStateChunkList = original.EntityHealthStateChunkList type EntityKindHealthStateCount = original.EntityKindHealthStateCount +type EnvironmentVariable = original.EnvironmentVariable type Epoch = original.Epoch type EventHealthEvaluation = original.EventHealthEvaluation type ExecutingFaultsChaosEvent = original.ExecutingFaultsChaosEvent @@ -1592,16 +1773,27 @@ type FileVersion = original.FileVersion type FolderInfo = original.FolderInfo type FrequencyBasedBackupScheduleDescription = original.FrequencyBasedBackupScheduleDescription type GUIDPropertyValue = original.GUIDPropertyValue +type GatewayDestination = original.GatewayDestination +type GatewayProperties = original.GatewayProperties +type GatewayResourceDescription = original.GatewayResourceDescription type GetBackupByStorageQueryDescription = original.GetBackupByStorageQueryDescription type GetPropertyBatchOperation = original.GetPropertyBatchOperation +type HTTPConfig = original.HTTPConfig +type HTTPHostConfig = original.HTTPHostConfig +type HTTPRouteConfig = original.HTTPRouteConfig +type HTTPRouteMatchHeader = original.HTTPRouteMatchHeader +type HTTPRouteMatchPath = original.HTTPRouteMatchPath +type HTTPRouteMatchRule = original.HTTPRouteMatchRule type HealthEvaluation = original.HealthEvaluation type HealthEvaluationWrapper = original.HealthEvaluationWrapper type HealthEvent = original.HealthEvent type HealthInformation = original.HealthInformation type HealthStateCount = original.HealthStateCount type HealthStatistics = original.HealthStatistics +type ImageRegistryCredential = original.ImageRegistryCredential type ImageStoreContent = original.ImageStoreContent type ImageStoreCopyDescription = original.ImageStoreCopyDescription +type InlinedValueSecretResourceProperties = original.InlinedValueSecretResourceProperties type Int64PropertyValue = original.Int64PropertyValue type Int64RangePartitionInformation = original.Int64RangePartitionInformation type InvokeDataLossResult = original.InvokeDataLossResult @@ -1626,17 +1818,29 @@ type ListServiceEvent = original.ListServiceEvent type ListServiceTypeInfo = original.ListServiceTypeInfo type LoadMetricReport = original.LoadMetricReport type LoadMetricReportInfo = original.LoadMetricReportInfo +type LocalNetworkResourceProperties = original.LocalNetworkResourceProperties +type MeshApplicationClient = original.MeshApplicationClient +type MeshCodePackageClient = original.MeshCodePackageClient +type MeshGatewayClient = original.MeshGatewayClient +type MeshNetworkClient = original.MeshNetworkClient +type MeshSecretClient = original.MeshSecretClient +type MeshSecretValueClient = original.MeshSecretValueClient +type MeshServiceClient = original.MeshServiceClient +type MeshServiceReplicaClient = original.MeshServiceReplicaClient +type MeshVolumeClient = original.MeshVolumeClient type MonitoringPolicyDescription = original.MonitoringPolicyDescription type NameDescription = original.NameDescription type NamedPartitionInformation = original.NamedPartitionInformation type NamedPartitionSchemeDescription = original.NamedPartitionSchemeDescription +type NetworkRef = original.NetworkRef +type NetworkResourceDescription = original.NetworkResourceDescription +type NetworkResourceProperties = original.NetworkResourceProperties +type NetworkResourcePropertiesBase = original.NetworkResourcePropertiesBase type NodeAbortedEvent = original.NodeAbortedEvent -type NodeAbortingEvent = original.NodeAbortingEvent -type NodeAddedEvent = original.NodeAddedEvent -type NodeCloseEvent = original.NodeCloseEvent -type NodeClosingEvent = original.NodeClosingEvent -type NodeDeactivateCompleteEvent = original.NodeDeactivateCompleteEvent -type NodeDeactivateStartEvent = original.NodeDeactivateStartEvent +type NodeAddedToClusterEvent = original.NodeAddedToClusterEvent +type NodeClosedEvent = original.NodeClosedEvent +type NodeDeactivateCompletedEvent = original.NodeDeactivateCompletedEvent +type NodeDeactivateStartedEvent = original.NodeDeactivateStartedEvent type NodeDeactivationInfo = original.NodeDeactivationInfo type NodeDeactivationTask = original.NodeDeactivationTask type NodeDeactivationTaskID = original.NodeDeactivationTaskID @@ -1644,7 +1848,6 @@ type NodeDownEvent = original.NodeDownEvent type NodeEvent = original.NodeEvent type NodeHealth = original.NodeHealth type NodeHealthEvaluation = original.NodeHealthEvaluation -type NodeHealthReportCreatedEvent = original.NodeHealthReportCreatedEvent type NodeHealthReportExpiredEvent = original.NodeHealthReportExpiredEvent type NodeHealthState = original.NodeHealthState type NodeHealthStateChunk = original.NodeHealthStateChunk @@ -1655,10 +1858,10 @@ type NodeImpact = original.NodeImpact type NodeInfo = original.NodeInfo type NodeLoadInfo = original.NodeLoadInfo type NodeLoadMetricInformation = original.NodeLoadMetricInformation +type NodeNewHealthReportEvent = original.NodeNewHealthReportEvent type NodeOpenFailedEvent = original.NodeOpenFailedEvent -type NodeOpenedSuccessEvent = original.NodeOpenedSuccessEvent -type NodeOpeningEvent = original.NodeOpeningEvent -type NodeRemovedEvent = original.NodeRemovedEvent +type NodeOpenSucceededEvent = original.NodeOpenSucceededEvent +type NodeRemovedFromClusterEvent = original.NodeRemovedFromClusterEvent type NodeRepairImpactDescription = original.NodeRepairImpactDescription type NodeRepairTargetDescription = original.NodeRepairTargetDescription type NodeResult = original.NodeResult @@ -1670,6 +1873,7 @@ type NodesHealthEvaluation = original.NodesHealthEvaluation type OperationStatus = original.OperationStatus type PackageSharingPolicyInfo = original.PackageSharingPolicyInfo type PagedApplicationInfoList = original.PagedApplicationInfoList +type PagedApplicationResourceDescriptionList = original.PagedApplicationResourceDescriptionList type PagedApplicationTypeInfoList = original.PagedApplicationTypeInfoList type PagedBackupConfigurationInfoList = original.PagedBackupConfigurationInfoList type PagedBackupEntityList = original.PagedBackupEntityList @@ -1677,12 +1881,19 @@ type PagedBackupInfoList = original.PagedBackupInfoList type PagedBackupPolicyDescriptionList = original.PagedBackupPolicyDescriptionList type PagedComposeDeploymentStatusInfoList = original.PagedComposeDeploymentStatusInfoList type PagedDeployedApplicationInfoList = original.PagedDeployedApplicationInfoList +type PagedGatewayResourceDescriptionList = original.PagedGatewayResourceDescriptionList +type PagedNetworkResourceDescriptionList = original.PagedNetworkResourceDescriptionList type PagedNodeInfoList = original.PagedNodeInfoList type PagedPropertyInfoList = original.PagedPropertyInfoList type PagedReplicaInfoList = original.PagedReplicaInfoList +type PagedSecretResourceDescriptionList = original.PagedSecretResourceDescriptionList +type PagedSecretValueResourceDescriptionList = original.PagedSecretValueResourceDescriptionList type PagedServiceInfoList = original.PagedServiceInfoList type PagedServicePartitionInfoList = original.PagedServicePartitionInfoList +type PagedServiceReplicaDescriptionList = original.PagedServiceReplicaDescriptionList +type PagedServiceResourceDescriptionList = original.PagedServiceResourceDescriptionList type PagedSubNameInfoList = original.PagedSubNameInfoList +type PagedVolumeResourceDescriptionList = original.PagedVolumeResourceDescriptionList type PartitionAnalysisEvent = original.PartitionAnalysisEvent type PartitionBackupConfigurationInfo = original.PartitionBackupConfigurationInfo type PartitionBackupEntity = original.PartitionBackupEntity @@ -1690,7 +1901,6 @@ type PartitionDataLossProgress = original.PartitionDataLossProgress type PartitionEvent = original.PartitionEvent type PartitionHealth = original.PartitionHealth type PartitionHealthEvaluation = original.PartitionHealthEvaluation -type PartitionHealthReportCreatedEvent = original.PartitionHealthReportCreatedEvent type PartitionHealthReportExpiredEvent = original.PartitionHealthReportExpiredEvent type PartitionHealthState = original.PartitionHealthState type PartitionHealthStateChunk = original.PartitionHealthStateChunk @@ -1699,15 +1909,15 @@ type PartitionHealthStateFilter = original.PartitionHealthStateFilter type PartitionInformation = original.PartitionInformation type PartitionInstanceCountScaleMechanism = original.PartitionInstanceCountScaleMechanism type PartitionLoadInformation = original.PartitionLoadInformation +type PartitionNewHealthReportEvent = original.PartitionNewHealthReportEvent type PartitionPrimaryMoveAnalysisEvent = original.PartitionPrimaryMoveAnalysisEvent type PartitionQuorumLossProgress = original.PartitionQuorumLossProgress -type PartitionReconfigurationCompletedEvent = original.PartitionReconfigurationCompletedEvent +type PartitionReconfiguredEvent = original.PartitionReconfiguredEvent type PartitionRestartProgress = original.PartitionRestartProgress type PartitionSafetyCheck = original.PartitionSafetyCheck type PartitionSchemeDescription = original.PartitionSchemeDescription type PartitionsHealthEvaluation = original.PartitionsHealthEvaluation type PrimaryReplicatorStatus = original.PrimaryReplicatorStatus -type ProcessDeactivatedEvent = original.ProcessDeactivatedEvent type PropertyBatchDescriptionList = original.PropertyBatchDescriptionList type PropertyBatchInfo = original.PropertyBatchInfo type PropertyBatchInfoModel = original.PropertyBatchInfoModel @@ -1722,6 +1932,7 @@ type ProvisionFabricDescription = original.ProvisionFabricDescription type PutPropertyBatchOperation = original.PutPropertyBatchOperation type ReconfigurationInformation = original.ReconfigurationInformation type RegistryCredential = original.RegistryCredential +type ReliableCollectionsRef = original.ReliableCollectionsRef type RemoteReplicatorAcknowledgementDetail = original.RemoteReplicatorAcknowledgementDetail type RemoteReplicatorAcknowledgementStatus = original.RemoteReplicatorAcknowledgementStatus type RemoteReplicatorStatus = original.RemoteReplicatorStatus @@ -1750,6 +1961,9 @@ type ReplicatorQueueStatus = original.ReplicatorQueueStatus type ReplicatorStatus = original.ReplicatorStatus type ResolvedServiceEndpoint = original.ResolvedServiceEndpoint type ResolvedServicePartition = original.ResolvedServicePartition +type ResourceLimits = original.ResourceLimits +type ResourceRequests = original.ResourceRequests +type ResourceRequirements = original.ResourceRequirements type RestartDeployedCodePackageDescription = original.RestartDeployedCodePackageDescription type RestartNodeDescription = original.RestartNodeDescription type RestartPartitionResult = original.RestartPartitionResult @@ -1757,6 +1971,7 @@ type RestorePartitionDescription = original.RestorePartitionDescription type RestoreProgressInfo = original.RestoreProgressInfo type ResumeApplicationUpgradeDescription = original.ResumeApplicationUpgradeDescription type ResumeClusterUpgradeDescription = original.ResumeClusterUpgradeDescription +type RetentionPolicyDescription = original.RetentionPolicyDescription type RollingUpgradeUpdateDescription = original.RollingUpgradeUpdateDescription type SafetyCheck = original.SafetyCheck type SafetyCheckWrapper = original.SafetyCheckWrapper @@ -1766,6 +1981,13 @@ type ScalingTriggerDescription = original.ScalingTriggerDescription type SecondaryActiveReplicatorStatus = original.SecondaryActiveReplicatorStatus type SecondaryIdleReplicatorStatus = original.SecondaryIdleReplicatorStatus type SecondaryReplicatorStatus = original.SecondaryReplicatorStatus +type SecretResourceDescription = original.SecretResourceDescription +type SecretResourceProperties = original.SecretResourceProperties +type SecretResourcePropertiesBase = original.SecretResourcePropertiesBase +type SecretValue = original.SecretValue +type SecretValueProperties = original.SecretValueProperties +type SecretValueResourceDescription = original.SecretValueResourceDescription +type SecretValueResourceProperties = original.SecretValueResourceProperties type SeedNodeSafetyCheck = original.SeedNodeSafetyCheck type SelectedPartition = original.SelectedPartition type ServiceBackupConfigurationInfo = original.ServiceBackupConfigurationInfo @@ -1779,7 +2001,6 @@ type ServiceEvent = original.ServiceEvent type ServiceFromTemplateDescription = original.ServiceFromTemplateDescription type ServiceHealth = original.ServiceHealth type ServiceHealthEvaluation = original.ServiceHealthEvaluation -type ServiceHealthReportCreatedEvent = original.ServiceHealthReportCreatedEvent type ServiceHealthReportExpiredEvent = original.ServiceHealthReportExpiredEvent type ServiceHealthState = original.ServiceHealthState type ServiceHealthStateChunk = original.ServiceHealthStateChunk @@ -1789,6 +2010,7 @@ type ServiceInfo = original.ServiceInfo type ServiceInfoModel = original.ServiceInfoModel type ServiceLoadMetricDescription = original.ServiceLoadMetricDescription type ServiceNameInfo = original.ServiceNameInfo +type ServiceNewHealthReportEvent = original.ServiceNewHealthReportEvent type ServicePartitionInfo = original.ServicePartitionInfo type ServicePartitionInfoModel = original.ServicePartitionInfoModel type ServicePlacementInvalidDomainPolicyDescription = original.ServicePlacementInvalidDomainPolicyDescription @@ -1797,6 +2019,11 @@ type ServicePlacementPolicyDescription = original.ServicePlacementPolicyDescript type ServicePlacementPreferPrimaryDomainPolicyDescription = original.ServicePlacementPreferPrimaryDomainPolicyDescription type ServicePlacementRequireDomainDistributionPolicyDescription = original.ServicePlacementRequireDomainDistributionPolicyDescription type ServicePlacementRequiredDomainPolicyDescription = original.ServicePlacementRequiredDomainPolicyDescription +type ServiceProperties = original.ServiceProperties +type ServiceReplicaDescription = original.ServiceReplicaDescription +type ServiceReplicaProperties = original.ServiceReplicaProperties +type ServiceResourceDescription = original.ServiceResourceDescription +type ServiceResourceProperties = original.ServiceResourceProperties type ServiceTypeDescription = original.ServiceTypeDescription type ServiceTypeExtensionDescription = original.ServiceTypeExtensionDescription type ServiceTypeHealthPolicy = original.ServiceTypeHealthPolicy @@ -1805,12 +2032,13 @@ type ServiceTypeInfo = original.ServiceTypeInfo type ServiceTypeManifest = original.ServiceTypeManifest type ServiceUpdateDescription = original.ServiceUpdateDescription type ServicesHealthEvaluation = original.ServicesHealthEvaluation +type Setting = original.Setting type SingletonPartitionInformation = original.SingletonPartitionInformation type SingletonPartitionSchemeDescription = original.SingletonPartitionSchemeDescription type StartClusterUpgradeDescription = original.StartClusterUpgradeDescription type StartedChaosEvent = original.StartedChaosEvent -type StatefulReplicaHealthReportCreatedEvent = original.StatefulReplicaHealthReportCreatedEvent type StatefulReplicaHealthReportExpiredEvent = original.StatefulReplicaHealthReportExpiredEvent +type StatefulReplicaNewHealthReportEvent = original.StatefulReplicaNewHealthReportEvent type StatefulServiceDescription = original.StatefulServiceDescription type StatefulServiceInfo = original.StatefulServiceInfo type StatefulServicePartitionInfo = original.StatefulServicePartitionInfo @@ -1819,8 +2047,8 @@ type StatefulServiceReplicaHealthState = original.StatefulServiceReplicaHealthSt type StatefulServiceReplicaInfo = original.StatefulServiceReplicaInfo type StatefulServiceTypeDescription = original.StatefulServiceTypeDescription type StatefulServiceUpdateDescription = original.StatefulServiceUpdateDescription -type StatelessReplicaHealthReportCreatedEvent = original.StatelessReplicaHealthReportCreatedEvent type StatelessReplicaHealthReportExpiredEvent = original.StatelessReplicaHealthReportExpiredEvent +type StatelessReplicaNewHealthReportEvent = original.StatelessReplicaNewHealthReportEvent type StatelessServiceDescription = original.StatelessServiceDescription type StatelessServiceInfo = original.StatelessServiceInfo type StatelessServiceInstanceHealth = original.StatelessServiceInstanceHealth @@ -1834,6 +2062,7 @@ type String = original.String type StringPropertyValue = original.StringPropertyValue type SuccessfulPropertyBatchInfo = original.SuccessfulPropertyBatchInfo type SystemApplicationHealthEvaluation = original.SystemApplicationHealthEvaluation +type TCPConfig = original.TCPConfig type TestErrorChaosEvent = original.TestErrorChaosEvent type TimeBasedBackupScheduleDescription = original.TimeBasedBackupScheduleDescription type TimeOfDay = original.TimeOfDay @@ -1851,6 +2080,10 @@ type UploadChunkRange = original.UploadChunkRange type UploadSession = original.UploadSession type UploadSessionInfo = original.UploadSessionInfo type ValidationFailedChaosEvent = original.ValidationFailedChaosEvent +type VolumeProperties = original.VolumeProperties +type VolumeProviderParametersAzureFile = original.VolumeProviderParametersAzureFile +type VolumeReference = original.VolumeReference +type VolumeResourceDescription = original.VolumeResourceDescription type WaitForInbuildReplicaSafetyCheck = original.WaitForInbuildReplicaSafetyCheck type WaitForPrimaryPlacementSafetyCheck = original.WaitForPrimaryPlacementSafetyCheck type WaitForPrimarySwapSafetyCheck = original.WaitForPrimarySwapSafetyCheck @@ -1860,6 +2093,60 @@ type WaitingChaosEvent = original.WaitingChaosEvent func New() BaseClient { return original.New() } +func NewMeshApplicationClient() MeshApplicationClient { + return original.NewMeshApplicationClient() +} +func NewMeshApplicationClientWithBaseURI(baseURI string) MeshApplicationClient { + return original.NewMeshApplicationClientWithBaseURI(baseURI) +} +func NewMeshCodePackageClient() MeshCodePackageClient { + return original.NewMeshCodePackageClient() +} +func NewMeshCodePackageClientWithBaseURI(baseURI string) MeshCodePackageClient { + return original.NewMeshCodePackageClientWithBaseURI(baseURI) +} +func NewMeshGatewayClient() MeshGatewayClient { + return original.NewMeshGatewayClient() +} +func NewMeshGatewayClientWithBaseURI(baseURI string) MeshGatewayClient { + return original.NewMeshGatewayClientWithBaseURI(baseURI) +} +func NewMeshNetworkClient() MeshNetworkClient { + return original.NewMeshNetworkClient() +} +func NewMeshNetworkClientWithBaseURI(baseURI string) MeshNetworkClient { + return original.NewMeshNetworkClientWithBaseURI(baseURI) +} +func NewMeshSecretClient() MeshSecretClient { + return original.NewMeshSecretClient() +} +func NewMeshSecretClientWithBaseURI(baseURI string) MeshSecretClient { + return original.NewMeshSecretClientWithBaseURI(baseURI) +} +func NewMeshSecretValueClient() MeshSecretValueClient { + return original.NewMeshSecretValueClient() +} +func NewMeshSecretValueClientWithBaseURI(baseURI string) MeshSecretValueClient { + return original.NewMeshSecretValueClientWithBaseURI(baseURI) +} +func NewMeshServiceClient() MeshServiceClient { + return original.NewMeshServiceClient() +} +func NewMeshServiceClientWithBaseURI(baseURI string) MeshServiceClient { + return original.NewMeshServiceClientWithBaseURI(baseURI) +} +func NewMeshServiceReplicaClient() MeshServiceReplicaClient { + return original.NewMeshServiceReplicaClient() +} +func NewMeshServiceReplicaClientWithBaseURI(baseURI string) MeshServiceReplicaClient { + return original.NewMeshServiceReplicaClientWithBaseURI(baseURI) +} +func NewMeshVolumeClient() MeshVolumeClient { + return original.NewMeshVolumeClient() +} +func NewMeshVolumeClientWithBaseURI(baseURI string) MeshVolumeClient { + return original.NewMeshVolumeClientWithBaseURI(baseURI) +} func NewWithBaseURI(baseURI string) BaseClient { return original.NewWithBaseURI(baseURI) } @@ -1869,6 +2156,9 @@ func PossibleApplicationDefinitionKindValues() []ApplicationDefinitionKind { func PossibleApplicationPackageCleanupPolicyValues() []ApplicationPackageCleanupPolicy { return original.PossibleApplicationPackageCleanupPolicyValues() } +func PossibleApplicationScopedVolumeKindValues() []ApplicationScopedVolumeKind { + return original.PossibleApplicationScopedVolumeKindValues() +} func PossibleApplicationStatusValues() []ApplicationStatus { return original.PossibleApplicationStatusValues() } @@ -1878,6 +2168,18 @@ func PossibleApplicationTypeDefinitionKindValues() []ApplicationTypeDefinitionKi func PossibleApplicationTypeStatusValues() []ApplicationTypeStatus { return original.PossibleApplicationTypeStatusValues() } +func PossibleAutoScalingMechanismKindValues() []AutoScalingMechanismKind { + return original.PossibleAutoScalingMechanismKindValues() +} +func PossibleAutoScalingMetricKindValues() []AutoScalingMetricKind { + return original.PossibleAutoScalingMetricKindValues() +} +func PossibleAutoScalingResourceMetricNameValues() []AutoScalingResourceMetricName { + return original.PossibleAutoScalingResourceMetricNameValues() +} +func PossibleAutoScalingTriggerKindValues() []AutoScalingTriggerKind { + return original.PossibleAutoScalingTriggerKindValues() +} func PossibleBackupEntityKindValues() []BackupEntityKind { return original.PossibleBackupEntityKindValues() } @@ -1935,6 +2237,9 @@ func PossibleDeployedApplicationStatusValues() []DeployedApplicationStatus { func PossibleDeploymentStatusValues() []DeploymentStatus { return original.PossibleDeploymentStatusValues() } +func PossibleDiagnosticsSinkKindValues() []DiagnosticsSinkKind { + return original.PossibleDiagnosticsSinkKindValues() +} func PossibleEntityKindBasicBackupEntityValues() []EntityKindBasicBackupEntity { return original.PossibleEntityKindBasicBackupEntityValues() } @@ -1959,6 +2264,9 @@ func PossibleFailureActionValues() []FailureAction { func PossibleFailureReasonValues() []FailureReason { return original.PossibleFailureReasonValues() } +func PossibleHeaderMatchTypeValues() []HeaderMatchType { + return original.PossibleHeaderMatchTypeValues() +} func PossibleHealthEvaluationKindValues() []HealthEvaluationKind { return original.PossibleHealthEvaluationKindValues() } @@ -1974,15 +2282,33 @@ func PossibleHostTypeValues() []HostType { func PossibleImpactLevelValues() []ImpactLevel { return original.PossibleImpactLevelValues() } +func PossibleKindBasicApplicationScopedVolumeCreationParametersValues() []KindBasicApplicationScopedVolumeCreationParameters { + return original.PossibleKindBasicApplicationScopedVolumeCreationParametersValues() +} +func PossibleKindBasicAutoScalingMechanismValues() []KindBasicAutoScalingMechanism { + return original.PossibleKindBasicAutoScalingMechanismValues() +} +func PossibleKindBasicAutoScalingMetricValues() []KindBasicAutoScalingMetric { + return original.PossibleKindBasicAutoScalingMetricValues() +} +func PossibleKindBasicAutoScalingTriggerValues() []KindBasicAutoScalingTrigger { + return original.PossibleKindBasicAutoScalingTriggerValues() +} func PossibleKindBasicBackupConfigurationInfoValues() []KindBasicBackupConfigurationInfo { return original.PossibleKindBasicBackupConfigurationInfoValues() } func PossibleKindBasicChaosEventValues() []KindBasicChaosEvent { return original.PossibleKindBasicChaosEventValues() } +func PossibleKindBasicDiagnosticsSinkPropertiesValues() []KindBasicDiagnosticsSinkProperties { + return original.PossibleKindBasicDiagnosticsSinkPropertiesValues() +} func PossibleKindBasicFabricEventValues() []KindBasicFabricEvent { return original.PossibleKindBasicFabricEventValues() } +func PossibleKindBasicNetworkResourcePropertiesBaseValues() []KindBasicNetworkResourcePropertiesBase { + return original.PossibleKindBasicNetworkResourcePropertiesBaseValues() +} func PossibleKindBasicPropertyBatchInfoValues() []KindBasicPropertyBatchInfo { return original.PossibleKindBasicPropertyBatchInfoValues() } @@ -2016,6 +2342,9 @@ func PossibleKindBasicScalingMechanismDescriptionValues() []KindBasicScalingMech func PossibleKindBasicScalingTriggerDescriptionValues() []KindBasicScalingTriggerDescription { return original.PossibleKindBasicScalingTriggerDescriptionValues() } +func PossibleKindBasicSecretResourcePropertiesBaseValues() []KindBasicSecretResourcePropertiesBase { + return original.PossibleKindBasicSecretResourcePropertiesBaseValues() +} func PossibleKindBasicServiceTypeDescriptionValues() []KindBasicServiceTypeDescription { return original.PossibleKindBasicServiceTypeDescriptionValues() } @@ -2025,6 +2354,9 @@ func PossibleKindValues() []Kind { func PossibleMoveCostValues() []MoveCost { return original.PossibleMoveCostValues() } +func PossibleNetworkKindValues() []NetworkKind { + return original.PossibleNetworkKindValues() +} func PossibleNodeDeactivationIntentValues() []NodeDeactivationIntent { return original.PossibleNodeDeactivationIntentValues() } @@ -2046,6 +2378,9 @@ func PossibleNodeTransitionTypeValues() []NodeTransitionType { func PossibleNodeUpgradePhaseValues() []NodeUpgradePhase { return original.PossibleNodeUpgradePhaseValues() } +func PossibleOperatingSystemTypeValues() []OperatingSystemType { + return original.PossibleOperatingSystemTypeValues() +} func PossibleOperationStateValues() []OperationState { return original.PossibleOperationStateValues() } @@ -2109,6 +2444,9 @@ func PossibleReplicaStatusValues() []ReplicaStatus { func PossibleReplicatorOperationNameValues() []ReplicatorOperationName { return original.PossibleReplicatorOperationNameValues() } +func PossibleResourceStatusValues() []ResourceStatus { + return original.PossibleResourceStatusValues() +} func PossibleRestartPartitionModeValues() []RestartPartitionMode { return original.PossibleRestartPartitionModeValues() } @@ -2118,6 +2456,12 @@ func PossibleRestoreStateValues() []RestoreState { func PossibleResultStatusValues() []ResultStatus { return original.PossibleResultStatusValues() } +func PossibleRetentionPolicyTypeBasicRetentionPolicyDescriptionValues() []RetentionPolicyTypeBasicRetentionPolicyDescription { + return original.PossibleRetentionPolicyTypeBasicRetentionPolicyDescriptionValues() +} +func PossibleRetentionPolicyTypeValues() []RetentionPolicyType { + return original.PossibleRetentionPolicyTypeValues() +} func PossibleSafetyCheckKindValues() []SafetyCheckKind { return original.PossibleSafetyCheckKindValues() } @@ -2130,6 +2474,9 @@ func PossibleScalingTriggerKindValues() []ScalingTriggerKind { func PossibleScheduleKindValues() []ScheduleKind { return original.PossibleScheduleKindValues() } +func PossibleSecretKindValues() []SecretKind { + return original.PossibleSecretKindValues() +} func PossibleServiceCorrelationSchemeValues() []ServiceCorrelationScheme { return original.PossibleServiceCorrelationSchemeValues() } @@ -2193,6 +2540,9 @@ func PossibleServiceStatusValues() []ServiceStatus { func PossibleServiceTypeRegistrationStatusValues() []ServiceTypeRegistrationStatus { return original.PossibleServiceTypeRegistrationStatusValues() } +func PossibleSizeTypesValues() []SizeTypes { + return original.PossibleSizeTypesValues() +} func PossibleStateValues() []State { return original.PossibleStateValues() } @@ -2217,6 +2567,9 @@ func PossibleUpgradeStateValues() []UpgradeState { func PossibleUpgradeTypeValues() []UpgradeType { return original.PossibleUpgradeTypeValues() } +func PossibleVolumeProviderValues() []VolumeProvider { + return original.PossibleVolumeProviderValues() +} func UserAgent() string { return original.UserAgent() + " profiles/preview" } diff --git a/profiles/preview/servicefabric/servicefabric/servicefabricapi/models.go b/profiles/preview/servicefabric/servicefabric/servicefabricapi/models.go index d2e21c835a37..45b018335f79 100644 --- a/profiles/preview/servicefabric/servicefabric/servicefabricapi/models.go +++ b/profiles/preview/servicefabric/servicefabric/servicefabricapi/models.go @@ -19,6 +19,15 @@ package servicefabricapi -import original "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.2/servicefabric/servicefabricapi" +import original "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.4/servicefabric/servicefabricapi" type BaseClientAPI = original.BaseClientAPI +type MeshApplicationClientAPI = original.MeshApplicationClientAPI +type MeshCodePackageClientAPI = original.MeshCodePackageClientAPI +type MeshGatewayClientAPI = original.MeshGatewayClientAPI +type MeshNetworkClientAPI = original.MeshNetworkClientAPI +type MeshSecretClientAPI = original.MeshSecretClientAPI +type MeshSecretValueClientAPI = original.MeshSecretValueClientAPI +type MeshServiceClientAPI = original.MeshServiceClientAPI +type MeshServiceReplicaClientAPI = original.MeshServiceReplicaClientAPI +type MeshVolumeClientAPI = original.MeshVolumeClientAPI diff --git a/services/servicefabric/6.2/servicefabric/models.go b/services/servicefabric/6.2/servicefabric/models.go index a3b7a229293a..24a4b0674067 100644 --- a/services/servicefabric/6.2/servicefabric/models.go +++ b/services/servicefabric/6.2/servicefabric/models.go @@ -9114,7 +9114,7 @@ func (be BackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { type BackupEpoch struct { // ConfigurationNumber - The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes. ConfigurationNumber *string `json:"ConfigurationNumber,omitempty"` - // DataLossNumber - The current dataloss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. + // DataLossNumber - The current data loss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. DataLossNumber *string `json:"DataLossNumber,omitempty"` } @@ -24002,7 +24002,7 @@ type EntityKindHealthStateCount struct { type Epoch struct { // ConfigurationVersion - The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes. ConfigurationVersion *string `json:"ConfigurationVersion,omitempty"` - // DataLossVersion - The current dataloss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. + // DataLossVersion - The current data loss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. DataLossVersion *string `json:"DataLossVersion,omitempty"` } diff --git a/services/servicefabric/6.3/servicefabric/client.go b/services/servicefabric/6.3/servicefabric/client.go new file mode 100644 index 000000000000..fb68b428de31 --- /dev/null +++ b/services/servicefabric/6.3/servicefabric/client.go @@ -0,0 +1,21185 @@ +// Package servicefabric implements the Azure ARM Servicefabric service API version 6.3.0.9. +// +// Service Fabric REST Client APIs allows management of Service Fabric clusters, applications and services. +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "github.com/satori/go.uuid" + "net/http" +) + +const ( + // DefaultBaseURI is the default URI used for the service Servicefabric + DefaultBaseURI = "http://localhost:19080" +) + +// BaseClient is the base client for Servicefabric. +type BaseClient struct { + autorest.Client + BaseURI string +} + +// New creates an instance of the BaseClient client. +func New() BaseClient { + return NewWithBaseURI(DefaultBaseURI) +} + +// NewWithBaseURI creates an instance of the BaseClient client. +func NewWithBaseURI(baseURI string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + } +} + +// BackupPartition creates a backup of the stateful persisted partition's state. In case the partition is already being +// periodically backed up, then by default the new backup is created at the same backup storage. One can also override +// the same by specifying the backup storage details as part of the request body. Once the backup is initiated, its +// progress can be tracked using the GetBackupProgress operation. +// In case, the operation times out, specify a greater backup timeout value in the query parameter. +// Parameters: +// partitionID - the identity of the partition. +// backupPartitionDescription - describes the parameters to backup the partition now. If not present, backup +// operation uses default parameters from the backup policy current associated with this partition. +// backupTimeout - specifies the maximum amount of time, in minutes, to wait for the backup operation to +// complete. Post that, the operation completes with timeout error. However, in certain corner cases it could +// be that though the operation returns back timeout, the backup actually goes through. In case of timeout +// error, its recommended to invoke this operation again with a greater timeout value. The default value for +// the same is 10 minutes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) BackupPartition(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *BackupPartitionDescription, backupTimeout *int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.BackupPartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "BackupPartition", err.Error()) + } + + req, err := client.BackupPartitionPreparer(ctx, partitionID, backupPartitionDescription, backupTimeout, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", nil, "Failure preparing request") + return + } + + resp, err := client.BackupPartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", resp, "Failure sending request") + return + } + + result, err = client.BackupPartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", resp, "Failure responding to request") + } + + return +} + +// BackupPartitionPreparer prepares the BackupPartition request. +func (client BaseClient) BackupPartitionPreparer(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *BackupPartitionDescription, backupTimeout *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if backupTimeout != nil { + queryParameters["BackupTimeout"] = autorest.Encode("query", *backupTimeout) + } else { + queryParameters["BackupTimeout"] = autorest.Encode("query", 10) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Backup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if backupPartitionDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(backupPartitionDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// BackupPartitionSender sends the BackupPartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) BackupPartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// BackupPartitionResponder handles the response to the BackupPartition request. The method always +// closes the http.Response Body. +func (client BaseClient) BackupPartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CancelOperation the following APIs start fault operations that may be cancelled by using CancelOperation: +// StartDataLoss, StartQuorumLoss, StartPartitionRestart, StartNodeTransition. +// +// If force is false, then the specified user-induced operation will be gracefully stopped and cleaned up. If force is +// true, the command will be aborted, and some internal state +// may be left behind. Specifying force as true should be used with care. Calling this API with force set to true is +// not allowed until this API has already +// been called on the same test command with force set to false first, or unless the test command already has an +// OperationState of OperationState.RollingBack. +// Clarification: OperationState.RollingBack means that the system will be/is cleaning up internal system state caused +// by executing the command. It will not restore data if the +// test command was to cause data loss. For example, if you call StartDataLoss then call this API, the system will +// only clean up internal state from running the command. +// It will not restore the target partition's data, if the command progressed far enough to cause data loss. +// +// Important note: if this API is invoked with force==true, internal state may be left behind. +// Parameters: +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// force - indicates whether to gracefully rollback and clean up internal system state modified by executing +// the user-induced operation. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CancelOperation(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CancelOperation") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CancelOperation", err.Error()) + } + + req, err := client.CancelOperationPreparer(ctx, operationID, force, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", nil, "Failure preparing request") + return + } + + resp, err := client.CancelOperationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", resp, "Failure sending request") + return + } + + result, err = client.CancelOperationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", resp, "Failure responding to request") + } + + return +} + +// CancelOperationPreparer prepares the CancelOperation request. +func (client BaseClient) CancelOperationPreparer(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Force": autorest.Encode("query", force), + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Faults/$/Cancel"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CancelOperationSender sends the CancelOperation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CancelOperationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CancelOperationResponder handles the response to the CancelOperation request. The method always +// closes the http.Response Body. +func (client BaseClient) CancelOperationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CancelRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTaskCancelDescription - describes the repair task to be cancelled. +func (client BaseClient) CancelRepairTask(ctx context.Context, repairTaskCancelDescription RepairTaskCancelDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CancelRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskCancelDescription, + Constraints: []validation.Constraint{{Target: "repairTaskCancelDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CancelRepairTask", err.Error()) + } + + req, err := client.CancelRepairTaskPreparer(ctx, repairTaskCancelDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.CancelRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", resp, "Failure sending request") + return + } + + result, err = client.CancelRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", resp, "Failure responding to request") + } + + return +} + +// CancelRepairTaskPreparer prepares the CancelRepairTask request. +func (client BaseClient) CancelRepairTaskPreparer(ctx context.Context, repairTaskCancelDescription RepairTaskCancelDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/CancelRepairTask"), + autorest.WithJSON(repairTaskCancelDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CancelRepairTaskSender sends the CancelRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CancelRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CancelRepairTaskResponder handles the response to the CancelRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) CancelRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CommitImageStoreUploadSession when all file chunks have been uploaded, the upload session needs to be committed +// explicitly to complete the upload. Image store preserves the upload session until the expiration time, which is 30 +// minutes after the last chunk received. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CommitImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CommitImageStoreUploadSession") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CommitImageStoreUploadSession", err.Error()) + } + + req, err := client.CommitImageStoreUploadSessionPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", nil, "Failure preparing request") + return + } + + resp, err := client.CommitImageStoreUploadSessionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", resp, "Failure sending request") + return + } + + result, err = client.CommitImageStoreUploadSessionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", resp, "Failure responding to request") + } + + return +} + +// CommitImageStoreUploadSessionPreparer prepares the CommitImageStoreUploadSession request. +func (client BaseClient) CommitImageStoreUploadSessionPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/CommitUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CommitImageStoreUploadSessionSender sends the CommitImageStoreUploadSession request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CommitImageStoreUploadSessionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CommitImageStoreUploadSessionResponder handles the response to the CommitImageStoreUploadSession request. The method always +// closes the http.Response Body. +func (client BaseClient) CommitImageStoreUploadSessionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CopyImageStoreContent copies the image store content from the source image store relative path to the destination +// image store relative path. +// Parameters: +// imageStoreCopyDescription - describes the copy description for the image store. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CopyImageStoreContent(ctx context.Context, imageStoreCopyDescription ImageStoreCopyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CopyImageStoreContent") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: imageStoreCopyDescription, + Constraints: []validation.Constraint{{Target: "imageStoreCopyDescription.RemoteSource", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "imageStoreCopyDescription.RemoteDestination", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CopyImageStoreContent", err.Error()) + } + + req, err := client.CopyImageStoreContentPreparer(ctx, imageStoreCopyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.CopyImageStoreContentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.CopyImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// CopyImageStoreContentPreparer prepares the CopyImageStoreContent request. +func (client BaseClient) CopyImageStoreContentPreparer(ctx context.Context, imageStoreCopyDescription ImageStoreCopyDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/Copy"), + autorest.WithJSON(imageStoreCopyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CopyImageStoreContentSender sends the CopyImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CopyImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CopyImageStoreContentResponder handles the response to the CopyImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) CopyImageStoreContentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateApplication creates a Service Fabric application using the specified description. +// Parameters: +// applicationDescription - description for creating an application. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateApplication(ctx context.Context, applicationDescription ApplicationDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateApplication") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationDescription, + Constraints: []validation.Constraint{{Target: "applicationDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.TypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.TypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.ApplicationCapacity", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MinimumNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MinimumNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + {Target: "applicationDescription.ApplicationCapacity.MaximumNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MaximumNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateApplication", err.Error()) + } + + req, err := client.CreateApplicationPreparer(ctx, applicationDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", nil, "Failure preparing request") + return + } + + resp, err := client.CreateApplicationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", resp, "Failure sending request") + return + } + + result, err = client.CreateApplicationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", resp, "Failure responding to request") + } + + return +} + +// CreateApplicationPreparer prepares the CreateApplication request. +func (client BaseClient) CreateApplicationPreparer(ctx context.Context, applicationDescription ApplicationDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Applications/$/Create"), + autorest.WithJSON(applicationDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateApplicationSender sends the CreateApplication request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateApplicationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateApplicationResponder handles the response to the CreateApplication request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateApplicationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateApplicationResource creates an application with the specified name and description. If an application with the +// same name already exists, then its description are updated to the one indicated in this request. +// Parameters: +// applicationResourceName - service Fabric application resource name. +// applicationResourceDescription - description for creating an application resource. +func (client BaseClient) CreateApplicationResource(ctx context.Context, applicationResourceName string, applicationResourceDescription ApplicationResourceDescription) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateApplicationResource") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationResourceDescription, + Constraints: []validation.Constraint{{Target: "applicationResourceDescription.ApplicationProperties", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateApplicationResource", err.Error()) + } + + req, err := client.CreateApplicationResourcePreparer(ctx, applicationResourceName, applicationResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplicationResource", nil, "Failure preparing request") + return + } + + resp, err := client.CreateApplicationResourceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplicationResource", resp, "Failure sending request") + return + } + + result, err = client.CreateApplicationResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplicationResource", resp, "Failure responding to request") + } + + return +} + +// CreateApplicationResourcePreparer prepares the CreateApplicationResource request. +func (client BaseClient) CreateApplicationResourcePreparer(ctx context.Context, applicationResourceName string, applicationResourceDescription ApplicationResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithJSON(applicationResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateApplicationResourceSender sends the CreateApplicationResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateApplicationResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateApplicationResourceResponder handles the response to the CreateApplicationResource request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateApplicationResourceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateBackupPolicy creates a backup policy which can be associated later with a Service Fabric application, service +// or a partition for periodic backup. +// Parameters: +// backupPolicyDescription - describes the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateBackupPolicy(ctx context.Context, backupPolicyDescription BackupPolicyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: backupPolicyDescription, + Constraints: []validation.Constraint{{Target: "backupPolicyDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.AutoRestoreOnDataLoss", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMaximum, Rule: int64(255), Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "backupPolicyDescription.Schedule", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateBackupPolicy", err.Error()) + } + + req, err := client.CreateBackupPolicyPreparer(ctx, backupPolicyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.CreateBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.CreateBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// CreateBackupPolicyPreparer prepares the CreateBackupPolicy request. +func (client BaseClient) CreateBackupPolicyPreparer(ctx context.Context, backupPolicyDescription BackupPolicyDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/BackupPolicies/$/Create"), + autorest.WithJSON(backupPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateBackupPolicySender sends the CreateBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateBackupPolicyResponder handles the response to the CreateBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateComposeDeployment compose is a file format that describes multi-container applications. This API allows +// deploying container based applications defined in compose format in a Service Fabric cluster. Once the deployment is +// created, its status can be tracked via the `GetComposeDeploymentStatus` API. +// Parameters: +// createComposeDeploymentDescription - describes the compose deployment that needs to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateComposeDeployment(ctx context.Context, createComposeDeploymentDescription CreateComposeDeploymentDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateComposeDeployment") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: createComposeDeploymentDescription, + Constraints: []validation.Constraint{{Target: "createComposeDeploymentDescription.DeploymentName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "createComposeDeploymentDescription.ComposeFileContent", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateComposeDeployment", err.Error()) + } + + req, err := client.CreateComposeDeploymentPreparer(ctx, createComposeDeploymentDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", nil, "Failure preparing request") + return + } + + resp, err := client.CreateComposeDeploymentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", resp, "Failure sending request") + return + } + + result, err = client.CreateComposeDeploymentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", resp, "Failure responding to request") + } + + return +} + +// CreateComposeDeploymentPreparer prepares the CreateComposeDeployment request. +func (client BaseClient) CreateComposeDeploymentPreparer(ctx context.Context, createComposeDeploymentDescription CreateComposeDeploymentDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ComposeDeployments/$/Create"), + autorest.WithJSON(createComposeDeploymentDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateComposeDeploymentSender sends the CreateComposeDeployment request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateComposeDeploymentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateComposeDeploymentResponder handles the response to the CreateComposeDeployment request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateComposeDeploymentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateName creates the specified Service Fabric name. +// Parameters: +// nameDescription - describes the Service Fabric name to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateName(ctx context.Context, nameDescription NameDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateName") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: nameDescription, + Constraints: []validation.Constraint{{Target: "nameDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateName", err.Error()) + } + + req, err := client.CreateNamePreparer(ctx, nameDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", nil, "Failure preparing request") + return + } + + resp, err := client.CreateNameSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", resp, "Failure sending request") + return + } + + result, err = client.CreateNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", resp, "Failure responding to request") + } + + return +} + +// CreateNamePreparer prepares the CreateName request. +func (client BaseClient) CreateNamePreparer(ctx context.Context, nameDescription NameDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Names/$/Create"), + autorest.WithJSON(nameDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateNameSender sends the CreateName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateNameResponder handles the response to the CreateName request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateNameResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateRepairTask for clusters that have the Repair Manager Service configured, +// this API provides a way to create repair tasks that run automatically or manually. +// For repair tasks that run automatically, an appropriate repair executor +// must be running for each repair action to run automatically. +// These are currently only available in specially-configured Azure Cloud Services. +// +// To create a manual repair task, provide the set of impacted node names and the +// expected impact. When the state of the created repair task changes to approved, +// you can safely perform repair actions on those nodes. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTask - describes the repair task to be created or updated. +func (client BaseClient) CreateRepairTask(ctx context.Context, repairTask RepairTask) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTask, + Constraints: []validation.Constraint{{Target: "repairTask.TaskID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "repairTask.Action", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateRepairTask", err.Error()) + } + + req, err := client.CreateRepairTaskPreparer(ctx, repairTask) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.CreateRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", resp, "Failure sending request") + return + } + + result, err = client.CreateRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", resp, "Failure responding to request") + } + + return +} + +// CreateRepairTaskPreparer prepares the CreateRepairTask request. +func (client BaseClient) CreateRepairTaskPreparer(ctx context.Context, repairTask RepairTask) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/CreateRepairTask"), + autorest.WithJSON(repairTask), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateRepairTaskSender sends the CreateRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateRepairTaskResponder handles the response to the CreateRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CreateService this api allows creating a new Service Fabric stateless or stateful service under a specified Service +// Fabric application. The description for creating the service includes partitioning information and optional +// properties for placement and load balancing. Some of the properties can later be modified using `UpdateService` API. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceDescription - the information necessary to create a service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateService(ctx context.Context, applicationID string, serviceDescription BasicServiceDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: serviceDescription, + Constraints: []validation.Constraint{{Target: "serviceDescription.ServiceName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceDescription.ServiceTypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceDescription.PartitionDescription", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateService", err.Error()) + } + + req, err := client.CreateServicePreparer(ctx, applicationID, serviceDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", nil, "Failure preparing request") + return + } + + resp, err := client.CreateServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", resp, "Failure sending request") + return + } + + result, err = client.CreateServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", resp, "Failure responding to request") + } + + return +} + +// CreateServicePreparer prepares the CreateService request. +func (client BaseClient) CreateServicePreparer(ctx context.Context, applicationID string, serviceDescription BasicServiceDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/$/Create", pathParameters), + autorest.WithJSON(serviceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateServiceSender sends the CreateService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateServiceResponder handles the response to the CreateService request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateServiceFromTemplate creates a Service Fabric service from the service template defined in the application +// manifest. A service template contains the properties that will be same for the service instance of the same type. +// The API allows overriding the properties that are usually different for different services of the same service type. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceFromTemplateDescription - describes the service that needs to be created from the template defined in +// the application manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateServiceFromTemplate(ctx context.Context, applicationID string, serviceFromTemplateDescription ServiceFromTemplateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateServiceFromTemplate") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: serviceFromTemplateDescription, + Constraints: []validation.Constraint{{Target: "serviceFromTemplateDescription.ApplicationName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceFromTemplateDescription.ServiceName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceFromTemplateDescription.ServiceTypeName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateServiceFromTemplate", err.Error()) + } + + req, err := client.CreateServiceFromTemplatePreparer(ctx, applicationID, serviceFromTemplateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateServiceFromTemplateSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", resp, "Failure sending request") + return + } + + result, err = client.CreateServiceFromTemplateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", resp, "Failure responding to request") + } + + return +} + +// CreateServiceFromTemplatePreparer prepares the CreateServiceFromTemplate request. +func (client BaseClient) CreateServiceFromTemplatePreparer(ctx context.Context, applicationID string, serviceFromTemplateDescription ServiceFromTemplateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/$/CreateFromTemplate", pathParameters), + autorest.WithJSON(serviceFromTemplateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateServiceFromTemplateSender sends the CreateServiceFromTemplate request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateServiceFromTemplateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateServiceFromTemplateResponder handles the response to the CreateServiceFromTemplate request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateServiceFromTemplateResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateVolumeResource creates a volume resource with the specified name and description. If a volume with the same +// name already exists, then its description is updated to the one indicated in this request. +// Parameters: +// volumeResourceName - service Fabric volume resource name. +// volumeResourceDescription - description for creating a volume resource. +func (client BaseClient) CreateVolumeResource(ctx context.Context, volumeResourceName string, volumeResourceDescription VolumeResourceDescription) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateVolumeResource") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: volumeResourceDescription, + Constraints: []validation.Constraint{{Target: "volumeResourceDescription.VolumeProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "volumeResourceDescription.VolumeProperties.Provider", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters.AccountName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters.ShareName", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}, + {Target: "volumeResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateVolumeResource", err.Error()) + } + + req, err := client.CreateVolumeResourcePreparer(ctx, volumeResourceName, volumeResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateVolumeResource", nil, "Failure preparing request") + return + } + + resp, err := client.CreateVolumeResourceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateVolumeResource", resp, "Failure sending request") + return + } + + result, err = client.CreateVolumeResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateVolumeResource", resp, "Failure responding to request") + } + + return +} + +// CreateVolumeResourcePreparer prepares the CreateVolumeResource request. +func (client BaseClient) CreateVolumeResourcePreparer(ctx context.Context, volumeResourceName string, volumeResourceDescription VolumeResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithJSON(volumeResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateVolumeResourceSender sends the CreateVolumeResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateVolumeResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateVolumeResourceResponder handles the response to the CreateVolumeResource request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateVolumeResourceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteApplication an application must be created before it can be deleted. Deleting an application will delete all +// services that are part of that application. By default, Service Fabric will try to close service replicas in a +// graceful manner and then delete the service. However, if a service is having issues closing the replica gracefully, +// the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to skip the graceful close +// sequence and forcefully delete the application and all of its services. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteApplication(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteApplication") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteApplication", err.Error()) + } + + req, err := client.DeleteApplicationPreparer(ctx, applicationID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteApplicationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", resp, "Failure sending request") + return + } + + result, err = client.DeleteApplicationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", resp, "Failure responding to request") + } + + return +} + +// DeleteApplicationPreparer prepares the DeleteApplication request. +func (client BaseClient) DeleteApplicationPreparer(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteApplicationSender sends the DeleteApplication request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteApplicationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteApplicationResponder handles the response to the DeleteApplication request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteApplicationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteApplicationResource deletes the application identified by the name. +// Parameters: +// applicationResourceName - service Fabric application resource name. +func (client BaseClient) DeleteApplicationResource(ctx context.Context, applicationResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteApplicationResource") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeleteApplicationResourcePreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplicationResource", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteApplicationResourceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplicationResource", resp, "Failure sending request") + return + } + + result, err = client.DeleteApplicationResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplicationResource", resp, "Failure responding to request") + } + + return +} + +// DeleteApplicationResourcePreparer prepares the DeleteApplicationResource request. +func (client BaseClient) DeleteApplicationResourcePreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteApplicationResourceSender sends the DeleteApplicationResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteApplicationResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteApplicationResourceResponder handles the response to the DeleteApplicationResource request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteApplicationResourceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteBackupPolicy deletes an existing backup policy. A backup policy must be created before it can be deleted. A +// currently active backup policy, associated with any Service Fabric application, service or partition, cannot be +// deleted without first deleting the mapping. +// Parameters: +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteBackupPolicy(ctx context.Context, backupPolicyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteBackupPolicy", err.Error()) + } + + req, err := client.DeleteBackupPolicyPreparer(ctx, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.DeleteBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// DeleteBackupPolicyPreparer prepares the DeleteBackupPolicy request. +func (client BaseClient) DeleteBackupPolicyPreparer(ctx context.Context, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteBackupPolicySender sends the DeleteBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteBackupPolicyResponder handles the response to the DeleteBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteImageStoreContent deletes existing image store content being found within the given image store relative path. +// This can be used to delete uploaded application packages once they are provisioned. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteImageStoreContent") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteImageStoreContent", err.Error()) + } + + req, err := client.DeleteImageStoreContentPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteImageStoreContentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.DeleteImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// DeleteImageStoreContentPreparer prepares the DeleteImageStoreContent request. +func (client BaseClient) DeleteImageStoreContentPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteImageStoreContentSender sends the DeleteImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteImageStoreContentResponder handles the response to the DeleteImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteImageStoreContentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteImageStoreUploadSession the DELETE request will cause the existing upload session to expire and remove any +// previously uploaded file chunks. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteImageStoreUploadSession") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteImageStoreUploadSession", err.Error()) + } + + req, err := client.DeleteImageStoreUploadSessionPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteImageStoreUploadSessionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", resp, "Failure sending request") + return + } + + result, err = client.DeleteImageStoreUploadSessionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", resp, "Failure responding to request") + } + + return +} + +// DeleteImageStoreUploadSessionPreparer prepares the DeleteImageStoreUploadSession request. +func (client BaseClient) DeleteImageStoreUploadSessionPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/DeleteUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteImageStoreUploadSessionSender sends the DeleteImageStoreUploadSession request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteImageStoreUploadSessionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteImageStoreUploadSessionResponder handles the response to the DeleteImageStoreUploadSession request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteImageStoreUploadSessionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteName deletes the specified Service Fabric name. A name must be created before it can be deleted. Deleting a +// name with child properties will fail. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteName(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteName") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteName", err.Error()) + } + + req, err := client.DeleteNamePreparer(ctx, nameID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteNameSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", resp, "Failure sending request") + return + } + + result, err = client.DeleteNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", resp, "Failure responding to request") + } + + return +} + +// DeleteNamePreparer prepares the DeleteName request. +func (client BaseClient) DeleteNamePreparer(ctx context.Context, nameID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteNameSender sends the DeleteName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteNameResponder handles the response to the DeleteName request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteNameResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteProperty deletes the specified Service Fabric property under a given name. A property must be created before +// it can be deleted. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyName - specifies the name of the property to get. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteProperty(ctx context.Context, nameID string, propertyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteProperty") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteProperty", err.Error()) + } + + req, err := client.DeletePropertyPreparer(ctx, nameID, propertyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", nil, "Failure preparing request") + return + } + + resp, err := client.DeletePropertySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", resp, "Failure sending request") + return + } + + result, err = client.DeletePropertyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", resp, "Failure responding to request") + } + + return +} + +// DeletePropertyPreparer prepares the DeleteProperty request. +func (client BaseClient) DeletePropertyPreparer(ctx context.Context, nameID string, propertyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "PropertyName": autorest.Encode("query", propertyName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeletePropertySender sends the DeleteProperty request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeletePropertySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeletePropertyResponder handles the response to the DeleteProperty request. The method always +// closes the http.Response Body. +func (client BaseClient) DeletePropertyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTaskDeleteDescription - describes the repair task to be deleted. +func (client BaseClient) DeleteRepairTask(ctx context.Context, repairTaskDeleteDescription RepairTaskDeleteDescription) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteRepairTask") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskDeleteDescription, + Constraints: []validation.Constraint{{Target: "repairTaskDeleteDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteRepairTask", err.Error()) + } + + req, err := client.DeleteRepairTaskPreparer(ctx, repairTaskDeleteDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteRepairTaskSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", resp, "Failure sending request") + return + } + + result, err = client.DeleteRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", resp, "Failure responding to request") + } + + return +} + +// DeleteRepairTaskPreparer prepares the DeleteRepairTask request. +func (client BaseClient) DeleteRepairTaskPreparer(ctx context.Context, repairTaskDeleteDescription RepairTaskDeleteDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/DeleteRepairTask"), + autorest.WithJSON(repairTaskDeleteDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteRepairTaskSender sends the DeleteRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteRepairTaskResponder handles the response to the DeleteRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteRepairTaskResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteService a service must be created before it can be deleted. By default, Service Fabric will try to close +// service replicas in a graceful manner and then delete the service. However, if the service is having issues closing +// the replica gracefully, the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to +// skip the graceful close sequence and forcefully delete the service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteService(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteService", err.Error()) + } + + req, err := client.DeleteServicePreparer(ctx, serviceID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", resp, "Failure sending request") + return + } + + result, err = client.DeleteServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", resp, "Failure responding to request") + } + + return +} + +// DeleteServicePreparer prepares the DeleteService request. +func (client BaseClient) DeleteServicePreparer(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteServiceSender sends the DeleteService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteServiceResponder handles the response to the DeleteService request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteVolumeResource deletes the volume identified by the name. +// Parameters: +// volumeResourceName - service Fabric volume resource name. +func (client BaseClient) DeleteVolumeResource(ctx context.Context, volumeResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteVolumeResource") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeleteVolumeResourcePreparer(ctx, volumeResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteVolumeResource", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteVolumeResourceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteVolumeResource", resp, "Failure sending request") + return + } + + result, err = client.DeleteVolumeResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteVolumeResource", resp, "Failure responding to request") + } + + return +} + +// DeleteVolumeResourcePreparer prepares the DeleteVolumeResource request. +func (client BaseClient) DeleteVolumeResourcePreparer(ctx context.Context, volumeResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteVolumeResourceSender sends the DeleteVolumeResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteVolumeResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteVolumeResourceResponder handles the response to the DeleteVolumeResource request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteVolumeResourceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeployServicePackageToNode this API provides a way to download code packages including the container images on a +// specific node outside of the normal application deployment and upgrade path. This is useful for the large code +// packages and container images to be present on the node before the actual application deployment and upgrade, thus +// significantly reducing the total time required for the deployment or upgrade. +// Parameters: +// nodeName - the name of the node. +// deployServicePackageToNodeDescription - describes information for deploying a service package to a Service +// Fabric node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeployServicePackageToNode(ctx context.Context, nodeName string, deployServicePackageToNodeDescription DeployServicePackageToNodeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeployServicePackageToNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: deployServicePackageToNodeDescription, + Constraints: []validation.Constraint{{Target: "deployServicePackageToNodeDescription.ServiceManifestName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.ApplicationTypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.ApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.NodeName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeployServicePackageToNode", err.Error()) + } + + req, err := client.DeployServicePackageToNodePreparer(ctx, nodeName, deployServicePackageToNodeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", nil, "Failure preparing request") + return + } + + resp, err := client.DeployServicePackageToNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", resp, "Failure sending request") + return + } + + result, err = client.DeployServicePackageToNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", resp, "Failure responding to request") + } + + return +} + +// DeployServicePackageToNodePreparer prepares the DeployServicePackageToNode request. +func (client BaseClient) DeployServicePackageToNodePreparer(ctx context.Context, nodeName string, deployServicePackageToNodeDescription DeployServicePackageToNodeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/DeployServicePackage", pathParameters), + autorest.WithJSON(deployServicePackageToNodeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeployServicePackageToNodeSender sends the DeployServicePackageToNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeployServicePackageToNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeployServicePackageToNodeResponder handles the response to the DeployServicePackageToNode request. The method always +// closes the http.Response Body. +func (client BaseClient) DeployServicePackageToNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableApplicationBackup disables periodic backup of Service Fabric application which was previously enabled. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisableApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableApplicationBackup", err.Error()) + } + + req, err := client.DisableApplicationBackupPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisableApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.DisableApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// DisableApplicationBackupPreparer prepares the DisableApplicationBackup request. +func (client BaseClient) DisableApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableApplicationBackupSender sends the DisableApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableApplicationBackupResponder handles the response to the DisableApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableNode deactivate a Service Fabric cluster node with the specified deactivation intent. Once the deactivation +// is in progress, the deactivation intent can be increased, but not decreased (for example, a node that is deactivated +// with the Pause intent can be deactivated further with Restart, but not the other way around. Nodes may be +// reactivated using the Activate a node operation any time after they are deactivated. If the deactivation is not +// complete, this will cancel the deactivation. A node that goes down and comes back up while deactivated will still +// need to be reactivated before services will be placed on that node. +// Parameters: +// nodeName - the name of the node. +// deactivationIntentDescription - describes the intent or reason for deactivating the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisableNode(ctx context.Context, nodeName string, deactivationIntentDescription DeactivationIntentDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableNode", err.Error()) + } + + req, err := client.DisableNodePreparer(ctx, nodeName, deactivationIntentDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", nil, "Failure preparing request") + return + } + + resp, err := client.DisableNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", resp, "Failure sending request") + return + } + + result, err = client.DisableNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", resp, "Failure responding to request") + } + + return +} + +// DisableNodePreparer prepares the DisableNode request. +func (client BaseClient) DisableNodePreparer(ctx context.Context, nodeName string, deactivationIntentDescription DeactivationIntentDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Deactivate", pathParameters), + autorest.WithJSON(deactivationIntentDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableNodeSender sends the DisableNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableNodeResponder handles the response to the DisableNode request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisablePartitionBackup disables periodic backup of partition which was previously enabled. Backup must be explicitly +// enabled before it can be disabled. +// In case the backup is enabled for the Service Fabric application or service, which this partition is part of, this +// partition would continue to be periodically backed up as per the policy mapped at the higher level entity. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisablePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisablePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisablePartitionBackup", err.Error()) + } + + req, err := client.DisablePartitionBackupPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisablePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.DisablePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// DisablePartitionBackupPreparer prepares the DisablePartitionBackup request. +func (client BaseClient) DisablePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisablePartitionBackupSender sends the DisablePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisablePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisablePartitionBackupResponder handles the response to the DisablePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisablePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableServiceBackup disables periodic backup of Service Fabric service which was previously enabled. Backup must be +// explicitly enabled before it can be disabled. +// In case the backup is enabled for the Service Fabric application, which this service is part of, this service would +// continue to be periodically backed up as per the policy mapped at the application level. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisableServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableServiceBackup", err.Error()) + } + + req, err := client.DisableServiceBackupPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisableServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.DisableServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", resp, "Failure responding to request") + } + + return +} + +// DisableServiceBackupPreparer prepares the DisableServiceBackup request. +func (client BaseClient) DisableServiceBackupPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableServiceBackupSender sends the DisableServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableServiceBackupResponder handles the response to the DisableServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableApplicationBackup enables periodic backup of stateful partitions which are part of this Service Fabric +// application. Each partition is backed up individually as per the specified backup policy description. +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableApplicationBackup(ctx context.Context, applicationID string, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableApplicationBackup", err.Error()) + } + + req, err := client.EnableApplicationBackupPreparer(ctx, applicationID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnableApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.EnableApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// EnableApplicationBackupPreparer prepares the EnableApplicationBackup request. +func (client BaseClient) EnableApplicationBackupPreparer(ctx context.Context, applicationID string, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableApplicationBackupSender sends the EnableApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableApplicationBackupResponder handles the response to the EnableApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableNode activates a Service Fabric cluster node that is currently deactivated. Once activated, the node will +// again become a viable target for placing new replicas, and any deactivated replicas remaining on the node will be +// reactivated. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableNode(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableNode", err.Error()) + } + + req, err := client.EnableNodePreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", nil, "Failure preparing request") + return + } + + resp, err := client.EnableNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", resp, "Failure sending request") + return + } + + result, err = client.EnableNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", resp, "Failure responding to request") + } + + return +} + +// EnableNodePreparer prepares the EnableNode request. +func (client BaseClient) EnableNodePreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Activate", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableNodeSender sends the EnableNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableNodeResponder handles the response to the EnableNode request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnablePartitionBackup enables periodic backup of stateful persisted partition. Each partition is backed up as per +// the specified backup policy description. In case the application or service, which is partition is part of, is +// already enabled for backup then this operation would override the policy being used to take the periodic backup of +// this partition. +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// partitionID - the identity of the partition. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnablePartitionBackup(ctx context.Context, partitionID uuid.UUID, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnablePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnablePartitionBackup", err.Error()) + } + + req, err := client.EnablePartitionBackupPreparer(ctx, partitionID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnablePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.EnablePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// EnablePartitionBackupPreparer prepares the EnablePartitionBackup request. +func (client BaseClient) EnablePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnablePartitionBackupSender sends the EnablePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnablePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnablePartitionBackupResponder handles the response to the EnablePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnablePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableServiceBackup enables periodic backup of stateful partitions which are part of this Service Fabric service. +// Each partition is backed up individually as per the specified backup policy description. In case the application, +// which the service is part of, is already enabled for backup then this operation would override the policy being used +// to take the periodic backup for this service and its partitions (unless explicitly overridden at the partition +// level). +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableServiceBackup(ctx context.Context, serviceID string, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableServiceBackup", err.Error()) + } + + req, err := client.EnableServiceBackupPreparer(ctx, serviceID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnableServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.EnableServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", resp, "Failure responding to request") + } + + return +} + +// EnableServiceBackupPreparer prepares the EnableServiceBackup request. +func (client BaseClient) EnableServiceBackupPreparer(ctx context.Context, serviceID string, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableServiceBackupSender sends the EnableServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableServiceBackupResponder handles the response to the EnableServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ForceApproveRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your +// code. +// Parameters: +// repairTaskApproveDescription - describes the repair task to be approved. +func (client BaseClient) ForceApproveRepairTask(ctx context.Context, repairTaskApproveDescription RepairTaskApproveDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ForceApproveRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskApproveDescription, + Constraints: []validation.Constraint{{Target: "repairTaskApproveDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ForceApproveRepairTask", err.Error()) + } + + req, err := client.ForceApproveRepairTaskPreparer(ctx, repairTaskApproveDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.ForceApproveRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", resp, "Failure sending request") + return + } + + result, err = client.ForceApproveRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", resp, "Failure responding to request") + } + + return +} + +// ForceApproveRepairTaskPreparer prepares the ForceApproveRepairTask request. +func (client BaseClient) ForceApproveRepairTaskPreparer(ctx context.Context, repairTaskApproveDescription RepairTaskApproveDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/ForceApproveRepairTask"), + autorest.WithJSON(repairTaskApproveDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ForceApproveRepairTaskSender sends the ForceApproveRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ForceApproveRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ForceApproveRepairTaskResponder handles the response to the ForceApproveRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) ForceApproveRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetAadMetadata gets the Azure Active Directory metadata used for secured connection to cluster. +// This API is not supposed to be called separately. It provides information needed to set up an Azure Active Directory +// secured connection with a Service Fabric cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetAadMetadata(ctx context.Context, timeout *int64) (result AadMetadataObject, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetAadMetadata") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetAadMetadata", err.Error()) + } + + req, err := client.GetAadMetadataPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", nil, "Failure preparing request") + return + } + + resp, err := client.GetAadMetadataSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", resp, "Failure sending request") + return + } + + result, err = client.GetAadMetadataResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", resp, "Failure responding to request") + } + + return +} + +// GetAadMetadataPreparer prepares the GetAadMetadata request. +func (client BaseClient) GetAadMetadataPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetAadMetadata"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetAadMetadataSender sends the GetAadMetadata request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetAadMetadataSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetAadMetadataResponder handles the response to the GetAadMetadata request. The method always +// closes the http.Response Body. +func (client BaseClient) GetAadMetadataResponder(resp *http.Response) (result AadMetadataObject, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetAllEntitiesBackedUpByPolicy returns a list of Service Fabric application, service or partition which are +// associated with this backup policy. +// Parameters: +// backupPolicyName - the name of the backup policy. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetAllEntitiesBackedUpByPolicy(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupEntityList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetAllEntitiesBackedUpByPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", err.Error()) + } + + req, err := client.GetAllEntitiesBackedUpByPolicyPreparer(ctx, backupPolicyName, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetAllEntitiesBackedUpByPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetAllEntitiesBackedUpByPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", resp, "Failure responding to request") + } + + return +} + +// GetAllEntitiesBackedUpByPolicyPreparer prepares the GetAllEntitiesBackedUpByPolicy request. +func (client BaseClient) GetAllEntitiesBackedUpByPolicyPreparer(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/GetBackupEnabledEntities", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetAllEntitiesBackedUpByPolicySender sends the GetAllEntitiesBackedUpByPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetAllEntitiesBackedUpByPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetAllEntitiesBackedUpByPolicyResponder handles the response to the GetAllEntitiesBackedUpByPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetAllEntitiesBackedUpByPolicyResponder(resp *http.Response) (result PagedBackupEntityList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationBackupConfigurationInfo gets the Service Fabric backup configuration information for the application +// and the services and partitions under this application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationBackupConfigurationInfo(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupConfigurationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetApplicationBackupConfigurationInfoPreparer(ctx, applicationID, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationBackupConfigurationInfoPreparer prepares the GetApplicationBackupConfigurationInfo request. +func (client BaseClient) GetApplicationBackupConfigurationInfoPreparer(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationBackupConfigurationInfoSender sends the GetApplicationBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationBackupConfigurationInfoResponder handles the response to the GetApplicationBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationBackupConfigurationInfoResponder(resp *http.Response) (result PagedBackupConfigurationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationBackupList returns a list of backups available for every partition in this Service Fabric application. +// The server enumerates all the backups available at the backup location configured in the backup policy. It also +// allows filtering of the result based on start and end datetime or just fetching the latest available backup for +// every partition. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetApplicationBackupList(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationBackupList", err.Error()) + } + + req, err := client.GetApplicationBackupListPreparer(ctx, applicationID, timeout, latest, startDateTimeFilter, endDateTimeFilter, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationBackupListPreparer prepares the GetApplicationBackupList request. +func (client BaseClient) GetApplicationBackupListPreparer(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationBackupListSender sends the GetApplicationBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationBackupListResponder handles the response to the GetApplicationBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationEventList the response is list of ApplicationEvent objects. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetApplicationEventList(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListApplicationEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationEventList", err.Error()) + } + + req, err := client.GetApplicationEventListPreparer(ctx, applicationID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationEventListPreparer prepares the GetApplicationEventList request. +func (client BaseClient) GetApplicationEventListPreparer(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Applications/{applicationId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationEventListSender sends the GetApplicationEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationEventListResponder handles the response to the GetApplicationEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationEventListResponder(resp *http.Response) (result ListApplicationEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationHealth returns the heath state of the service fabric application. The response reports either Ok, +// Error or Warning health state. If the entity is not found in the health store, it will return Error. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedApplicationsHealthStateFilter - allows filtering of the deployed applications health state objects +// returned in the result of application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. Only +// deployed applications that match the filter will be returned. +// All deployed applications are used to evaluate the aggregated health state. If not specified, all entries +// are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values, obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of deployed applications with HealthState value of +// OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// servicesHealthStateFilter - allows filtering of the services health state objects returned in the result of +// services health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only services that match the filter are returned. All services are used to evaluate the aggregated health +// state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of services +// with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationHealth(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result ApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationHealth", err.Error()) + } + + req, err := client.GetApplicationHealthPreparer(ctx, applicationID, eventsHealthStateFilter, deployedApplicationsHealthStateFilter, servicesHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// GetApplicationHealthPreparer prepares the GetApplicationHealth request. +func (client BaseClient) GetApplicationHealthPreparer(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedApplicationsHealthStateFilter != nil { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", *deployedApplicationsHealthStateFilter) + } else { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if servicesHealthStateFilter != nil { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", *servicesHealthStateFilter) + } else { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationHealthSender sends the GetApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationHealthResponder handles the response to the GetApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationHealthResponder(resp *http.Response) (result ApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationHealthUsingPolicy gets the health of a Service Fabric application. Use EventsHealthStateFilter to +// filter the collection of health events reported on the node based on the health state. Use ClusterHealthPolicies to +// override the health policies used to evaluate the health. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedApplicationsHealthStateFilter - allows filtering of the deployed applications health state objects +// returned in the result of application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. Only +// deployed applications that match the filter will be returned. +// All deployed applications are used to evaluate the aggregated health state. If not specified, all entries +// are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values, obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of deployed applications with HealthState value of +// OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// servicesHealthStateFilter - allows filtering of the services health state objects returned in the result of +// services health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only services that match the filter are returned. All services are used to evaluate the aggregated health +// state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of services +// with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationHealthUsingPolicy(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result ApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", err.Error()) + } + + req, err := client.GetApplicationHealthUsingPolicyPreparer(ctx, applicationID, eventsHealthStateFilter, deployedApplicationsHealthStateFilter, servicesHealthStateFilter, excludeHealthStatistics, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetApplicationHealthUsingPolicyPreparer prepares the GetApplicationHealthUsingPolicy request. +func (client BaseClient) GetApplicationHealthUsingPolicyPreparer(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedApplicationsHealthStateFilter != nil { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", *deployedApplicationsHealthStateFilter) + } else { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if servicesHealthStateFilter != nil { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", *servicesHealthStateFilter) + } else { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationHealthUsingPolicySender sends the GetApplicationHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationHealthUsingPolicyResponder handles the response to the GetApplicationHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationHealthUsingPolicyResponder(resp *http.Response) (result ApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationInfo returns the information about the application that was created or in the process of being created +// in the Service Fabric cluster and whose name matches the one specified as the parameter. The response includes the +// name, type, status, parameters, and other details about the application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationInfo(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (result ApplicationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationInfo", err.Error()) + } + + req, err := client.GetApplicationInfoPreparer(ctx, applicationID, excludeApplicationParameters, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationInfoPreparer prepares the GetApplicationInfo request. +func (client BaseClient) GetApplicationInfoPreparer(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationInfoSender sends the GetApplicationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationInfoResponder handles the response to the GetApplicationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationInfoResponder(resp *http.Response) (result ApplicationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationInfoList gets the information about the applications that were created or in the process of being +// created in the Service Fabric cluster and match the specified filters. The response includes the name, type, status, +// parameters, and other details about the application. If the applications do not fit in a page, one page of results +// is returned as well as a continuation token, which can be used to get the next page. Filters ApplicationTypeName and +// ApplicationDefinitionKindFilter cannot be specified at the same time. +// Parameters: +// applicationDefinitionKindFilter - used to filter on ApplicationDefinitionKind, which is the mechanism used +// to define a Service Fabric application. +// - Default - Default value, which performs the same function as selecting "All". The value is 0. +// - All - Filter that matches input with any ApplicationDefinitionKind value. The value is 65535. +// - ServiceFabricApplicationDescription - Filter that matches input with ApplicationDefinitionKind value +// ServiceFabricApplicationDescription. The value is 1. +// - Compose - Filter that matches input with ApplicationDefinitionKind value Compose. The value is 2. +// applicationTypeName - the application type name used to filter the applications to query for. This value +// should not contain the application type version. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationInfoList(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationInfoList", err.Error()) + } + + req, err := client.GetApplicationInfoListPreparer(ctx, applicationDefinitionKindFilter, applicationTypeName, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationInfoListPreparer prepares the GetApplicationInfoList request. +func (client BaseClient) GetApplicationInfoListPreparer(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if applicationDefinitionKindFilter != nil { + queryParameters["ApplicationDefinitionKindFilter"] = autorest.Encode("query", *applicationDefinitionKindFilter) + } else { + queryParameters["ApplicationDefinitionKindFilter"] = autorest.Encode("query", 0) + } + if len(applicationTypeName) > 0 { + queryParameters["ApplicationTypeName"] = autorest.Encode("query", applicationTypeName) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Applications"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationInfoListSender sends the GetApplicationInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationInfoListResponder handles the response to the GetApplicationInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationInfoListResponder(resp *http.Response) (result PagedApplicationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationLoadInfo returns the load information about the application that was created or in the process of +// being created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response +// includes the name, minimum nodes, maximum nodes, the number of nodes the application is occupying currently, and +// application load metric information about the application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationLoadInfo(ctx context.Context, applicationID string, timeout *int64) (result ApplicationLoadInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationLoadInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationLoadInfo", err.Error()) + } + + req, err := client.GetApplicationLoadInfoPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationLoadInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationLoadInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationLoadInfoPreparer prepares the GetApplicationLoadInfo request. +func (client BaseClient) GetApplicationLoadInfoPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationLoadInfoSender sends the GetApplicationLoadInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationLoadInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationLoadInfoResponder handles the response to the GetApplicationLoadInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationLoadInfoResponder(resp *http.Response) (result ApplicationLoadInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationManifest the response contains the application manifest XML as a string. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result ApplicationTypeManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationManifest", err.Error()) + } + + req, err := client.GetApplicationManifestPreparer(ctx, applicationTypeName, applicationTypeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", resp, "Failure responding to request") + } + + return +} + +// GetApplicationManifestPreparer prepares the GetApplicationManifest request. +func (client BaseClient) GetApplicationManifestPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetApplicationManifest", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationManifestSender sends the GetApplicationManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationManifestResponder handles the response to the GetApplicationManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationManifestResponder(resp *http.Response) (result ApplicationTypeManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationNameInfo gets the name of the application for the specified service. A 404 +// FABRIC_E_SERVICE_DOES_NOT_EXIST error is returned if a service with the provided service ID does not exist. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationNameInfo(ctx context.Context, serviceID string, timeout *int64) (result ApplicationNameInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationNameInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationNameInfo", err.Error()) + } + + req, err := client.GetApplicationNameInfoPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationNameInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationNameInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationNameInfoPreparer prepares the GetApplicationNameInfo request. +func (client BaseClient) GetApplicationNameInfoPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetApplicationName", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationNameInfoSender sends the GetApplicationNameInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationNameInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationNameInfoResponder handles the response to the GetApplicationNameInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationNameInfoResponder(resp *http.Response) (result ApplicationNameInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationResource gets the application with the given name. This includes the information about the +// application's services and other runtime information. +// Parameters: +// applicationResourceName - service Fabric application resource name. +func (client BaseClient) GetApplicationResource(ctx context.Context, applicationResourceName string) (result ApplicationResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationResource") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetApplicationResourcePreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationResource", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationResourceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationResource", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationResource", resp, "Failure responding to request") + } + + return +} + +// GetApplicationResourcePreparer prepares the GetApplicationResource request. +func (client BaseClient) GetApplicationResourcePreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationResourceSender sends the GetApplicationResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationResourceResponder handles the response to the GetApplicationResource request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationResourceResponder(resp *http.Response) (result ApplicationResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationsEventList the response is list of ApplicationEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetApplicationsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListApplicationEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationsEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationsEventList", err.Error()) + } + + req, err := client.GetApplicationsEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationsEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationsEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationsEventListPreparer prepares the GetApplicationsEventList request. +func (client BaseClient) GetApplicationsEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Applications/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationsEventListSender sends the GetApplicationsEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationsEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationsEventListResponder handles the response to the GetApplicationsEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationsEventListResponder(resp *http.Response) (result ListApplicationEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationTypeInfoList returns the information about the application types that are provisioned or in the +// process of being provisioned in the Service Fabric cluster. Each version of an application type is returned as one +// application type. The response includes the name, version, status, and other details about the application type. +// This is a paged query, meaning that if not all of the application types fit in a page, one page of results is +// returned as well as a continuation token, which can be used to get the next page. For example, if there are 10 +// application types but a page only fits the first three application types, or if max results is set to 3, then three +// is returned. To access the rest of the results, retrieve subsequent pages by using the returned continuation token +// in the next query. An empty continuation token is returned if there are no subsequent pages. +// Parameters: +// applicationTypeDefinitionKindFilter - used to filter on ApplicationTypeDefinitionKind which is the mechanism +// used to define a Service Fabric application type. +// - Default - Default value, which performs the same function as selecting "All". The value is 0. +// - All - Filter that matches input with any ApplicationTypeDefinitionKind value. The value is 65535. +// - ServiceFabricApplicationPackage - Filter that matches input with ApplicationTypeDefinitionKind value +// ServiceFabricApplicationPackage. The value is 1. +// - Compose - Filter that matches input with ApplicationTypeDefinitionKind value Compose. The value is 2. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationTypeInfoList(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationTypeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationTypeInfoList", err.Error()) + } + + req, err := client.GetApplicationTypeInfoListPreparer(ctx, applicationTypeDefinitionKindFilter, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationTypeInfoListPreparer prepares the GetApplicationTypeInfoList request. +func (client BaseClient) GetApplicationTypeInfoListPreparer(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if applicationTypeDefinitionKindFilter != nil { + queryParameters["ApplicationTypeDefinitionKindFilter"] = autorest.Encode("query", *applicationTypeDefinitionKindFilter) + } else { + queryParameters["ApplicationTypeDefinitionKindFilter"] = autorest.Encode("query", 0) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ApplicationTypes"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationTypeInfoListSender sends the GetApplicationTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationTypeInfoListResponder handles the response to the GetApplicationTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationTypeInfoListResponder(resp *http.Response) (result PagedApplicationTypeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationTypeInfoListByName returns the information about the application types that are provisioned or in the +// process of being provisioned in the Service Fabric cluster. These results are of application types whose name match +// exactly the one specified as the parameter, and which comply with the given query parameters. All versions of the +// application type matching the application type name are returned, with each version returned as one application +// type. The response includes the name, version, status, and other details about the application type. This is a paged +// query, meaning that if not all of the application types fit in a page, one page of results is returned as well as a +// continuation token, which can be used to get the next page. For example, if there are 10 application types but a +// page only fits the first three application types, or if max results is set to 3, then three is returned. To access +// the rest of the results, retrieve subsequent pages by using the returned continuation token in the next query. An +// empty continuation token is returned if there are no subsequent pages. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationTypeInfoListByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationTypeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationTypeInfoListByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationTypeInfoListByName", err.Error()) + } + + req, err := client.GetApplicationTypeInfoListByNamePreparer(ctx, applicationTypeName, applicationTypeVersion, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationTypeInfoListByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationTypeInfoListByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", resp, "Failure responding to request") + } + + return +} + +// GetApplicationTypeInfoListByNamePreparer prepares the GetApplicationTypeInfoListByName request. +func (client BaseClient) GetApplicationTypeInfoListByNamePreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(applicationTypeVersion) > 0 { + queryParameters["ApplicationTypeVersion"] = autorest.Encode("query", applicationTypeVersion) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationTypeInfoListByNameSender sends the GetApplicationTypeInfoListByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationTypeInfoListByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationTypeInfoListByNameResponder handles the response to the GetApplicationTypeInfoListByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationTypeInfoListByNameResponder(resp *http.Response) (result PagedApplicationTypeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationUpgrade returns information about the state of the latest application upgrade along with details to +// aid debugging application health issues. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result ApplicationUpgradeProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationUpgrade") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationUpgrade", err.Error()) + } + + req, err := client.GetApplicationUpgradePreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationUpgradeSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// GetApplicationUpgradePreparer prepares the GetApplicationUpgrade request. +func (client BaseClient) GetApplicationUpgradePreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetUpgradeProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationUpgradeSender sends the GetApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationUpgradeResponder handles the response to the GetApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationUpgradeResponder(resp *http.Response) (result ApplicationUpgradeProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupPolicyByName gets a particular backup policy identified by {backupPolicyName} +// Parameters: +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetBackupPolicyByName(ctx context.Context, backupPolicyName string, timeout *int64) (result BackupPolicyDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupPolicyByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupPolicyByName", err.Error()) + } + + req, err := client.GetBackupPolicyByNamePreparer(ctx, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupPolicyByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", resp, "Failure sending request") + return + } + + result, err = client.GetBackupPolicyByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", resp, "Failure responding to request") + } + + return +} + +// GetBackupPolicyByNamePreparer prepares the GetBackupPolicyByName request. +func (client BaseClient) GetBackupPolicyByNamePreparer(ctx context.Context, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupPolicyByNameSender sends the GetBackupPolicyByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupPolicyByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupPolicyByNameResponder handles the response to the GetBackupPolicyByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupPolicyByNameResponder(resp *http.Response) (result BackupPolicyDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupPolicyList get a list of all the backup policies configured. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetBackupPolicyList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupPolicyDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupPolicyList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupPolicyList", err.Error()) + } + + req, err := client.GetBackupPolicyListPreparer(ctx, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupPolicyListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", resp, "Failure sending request") + return + } + + result, err = client.GetBackupPolicyListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", resp, "Failure responding to request") + } + + return +} + +// GetBackupPolicyListPreparer prepares the GetBackupPolicyList request. +func (client BaseClient) GetBackupPolicyListPreparer(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/BackupPolicies"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupPolicyListSender sends the GetBackupPolicyList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupPolicyListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupPolicyListResponder handles the response to the GetBackupPolicyList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupPolicyListResponder(resp *http.Response) (result PagedBackupPolicyDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupsFromBackupLocation gets the list of backups available for the specified backed up entity (Application, +// Service or Partition) at the specified backup location (FileShare or Azure Blob Storage). +// Parameters: +// getBackupByStorageQueryDescription - describes the filters and backup storage details to be used for +// enumerating backups. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetBackupsFromBackupLocation(ctx context.Context, getBackupByStorageQueryDescription GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupsFromBackupLocation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: getBackupByStorageQueryDescription, + Constraints: []validation.Constraint{{Target: "getBackupByStorageQueryDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "getBackupByStorageQueryDescription.BackupEntity", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupsFromBackupLocation", err.Error()) + } + + req, err := client.GetBackupsFromBackupLocationPreparer(ctx, getBackupByStorageQueryDescription, timeout, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupsFromBackupLocationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", resp, "Failure sending request") + return + } + + result, err = client.GetBackupsFromBackupLocationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", resp, "Failure responding to request") + } + + return +} + +// GetBackupsFromBackupLocationPreparer prepares the GetBackupsFromBackupLocation request. +func (client BaseClient) GetBackupsFromBackupLocationPreparer(ctx context.Context, getBackupByStorageQueryDescription GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/$/GetBackups"), + autorest.WithJSON(getBackupByStorageQueryDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupsFromBackupLocationSender sends the GetBackupsFromBackupLocation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupsFromBackupLocationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupsFromBackupLocationResponder handles the response to the GetBackupsFromBackupLocation request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupsFromBackupLocationResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaos get the status of Chaos indicating whether or not Chaos is running, the Chaos parameters used for running +// Chaos and the status of the Chaos Schedule. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaos(ctx context.Context, timeout *int64) (result Chaos, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaos") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaos", err.Error()) + } + + req, err := client.GetChaosPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", resp, "Failure sending request") + return + } + + result, err = client.GetChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", resp, "Failure responding to request") + } + + return +} + +// GetChaosPreparer prepares the GetChaos request. +func (client BaseClient) GetChaosPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosSender sends the GetChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosResponder handles the response to the GetChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosResponder(resp *http.Response) (result Chaos, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaosEvents to get the next segment of the Chaos events, you can specify the ContinuationToken. To get the start +// of a new segment of Chaos events, you can specify the time range +// through StartTimeUtc and EndTimeUtc. You cannot specify both the ContinuationToken and the time range in the same +// call. +// When there are more than 100 Chaos events, the Chaos events are returned in multiple segments where a segment +// contains no more than 100 Chaos events and to get the next segment you make a call to this API with the continuation +// token. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// startTimeUtc - the Windows file time representing the start time of the time range for which a Chaos report +// is to be generated. Consult [DateTime.ToFileTimeUtc +// Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details. +// endTimeUtc - the Windows file time representing the end time of the time range for which a Chaos report is +// to be generated. Consult [DateTime.ToFileTimeUtc +// Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaosEvents(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (result ChaosEventsSegment, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaosEvents") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaosEvents", err.Error()) + } + + req, err := client.GetChaosEventsPreparer(ctx, continuationToken, startTimeUtc, endTimeUtc, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosEventsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", resp, "Failure sending request") + return + } + + result, err = client.GetChaosEventsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", resp, "Failure responding to request") + } + + return +} + +// GetChaosEventsPreparer prepares the GetChaosEvents request. +func (client BaseClient) GetChaosEventsPreparer(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if len(startTimeUtc) > 0 { + queryParameters["StartTimeUtc"] = autorest.Encode("query", startTimeUtc) + } + if len(endTimeUtc) > 0 { + queryParameters["EndTimeUtc"] = autorest.Encode("query", endTimeUtc) + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosEventsSender sends the GetChaosEvents request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosEventsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosEventsResponder handles the response to the GetChaosEvents request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosEventsResponder(resp *http.Response) (result ChaosEventsSegment, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaosSchedule gets the version of the Chaos Schedule in use and the Chaos Schedule that defines when and how to +// run Chaos. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaosSchedule(ctx context.Context, timeout *int64) (result ChaosScheduleDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaosSchedule") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaosSchedule", err.Error()) + } + + req, err := client.GetChaosSchedulePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosScheduleSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", resp, "Failure sending request") + return + } + + result, err = client.GetChaosScheduleResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", resp, "Failure responding to request") + } + + return +} + +// GetChaosSchedulePreparer prepares the GetChaosSchedule request. +func (client BaseClient) GetChaosSchedulePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Schedule"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosScheduleSender sends the GetChaosSchedule request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosScheduleSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosScheduleResponder handles the response to the GetChaosSchedule request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosScheduleResponder(resp *http.Response) (result ChaosScheduleDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterConfiguration the cluster configuration contains properties of the cluster that include different node +// types on the cluster, +// security configurations, fault, and upgrade domain topologies, etc. +// Parameters: +// configurationAPIVersion - the API version of the Standalone cluster json configuration. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterConfiguration(ctx context.Context, configurationAPIVersion string, timeout *int64) (result ClusterConfiguration, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterConfiguration") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterConfiguration", err.Error()) + } + + req, err := client.GetClusterConfigurationPreparer(ctx, configurationAPIVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterConfigurationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", resp, "Failure sending request") + return + } + + result, err = client.GetClusterConfigurationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", resp, "Failure responding to request") + } + + return +} + +// GetClusterConfigurationPreparer prepares the GetClusterConfiguration request. +func (client BaseClient) GetClusterConfigurationPreparer(ctx context.Context, configurationAPIVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ConfigurationApiVersion": autorest.Encode("query", configurationAPIVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterConfiguration"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterConfigurationSender sends the GetClusterConfiguration request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterConfigurationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterConfigurationResponder handles the response to the GetClusterConfiguration request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterConfigurationResponder(resp *http.Response) (result ClusterConfiguration, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterConfigurationUpgradeStatus get the cluster configuration upgrade status details of a Service Fabric +// standalone cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterConfigurationUpgradeStatus(ctx context.Context, timeout *int64) (result ClusterConfigurationUpgradeStatusInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterConfigurationUpgradeStatus") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", err.Error()) + } + + req, err := client.GetClusterConfigurationUpgradeStatusPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterConfigurationUpgradeStatusSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", resp, "Failure sending request") + return + } + + result, err = client.GetClusterConfigurationUpgradeStatusResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", resp, "Failure responding to request") + } + + return +} + +// GetClusterConfigurationUpgradeStatusPreparer prepares the GetClusterConfigurationUpgradeStatus request. +func (client BaseClient) GetClusterConfigurationUpgradeStatusPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterConfigurationUpgradeStatus"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterConfigurationUpgradeStatusSender sends the GetClusterConfigurationUpgradeStatus request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterConfigurationUpgradeStatusSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterConfigurationUpgradeStatusResponder handles the response to the GetClusterConfigurationUpgradeStatus request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterConfigurationUpgradeStatusResponder(resp *http.Response) (result ClusterConfigurationUpgradeStatusInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterEventList the response is list of ClusterEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetClusterEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListClusterEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterEventList", err.Error()) + } + + req, err := client.GetClusterEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", resp, "Failure sending request") + return + } + + result, err = client.GetClusterEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", resp, "Failure responding to request") + } + + return +} + +// GetClusterEventListPreparer prepares the GetClusterEventList request. +func (client BaseClient) GetClusterEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Cluster/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterEventListSender sends the GetClusterEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterEventListResponder handles the response to the GetClusterEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterEventListResponder(resp *http.Response) (result ListClusterEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealth use EventsHealthStateFilter to filter the collection of health events reported on the cluster based +// on the health state. +// Similarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and +// applications returned based on their aggregated health state. +// Parameters: +// nodesHealthStateFilter - allows filtering of the node health state objects returned in the result of cluster +// health query +// based on their health state. The possible values for this parameter include integer value of one of the +// following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the +// aggregated health state. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of nodes with HealthState value of OK (2) and +// Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationsHealthStateFilter - allows filtering of the application health state objects returned in the +// result of cluster health +// query based on their health state. +// The possible values for this parameter include integer value obtained from members or bitwise operations +// on members of HealthStateFilter enumeration. Only applications that match the filter are returned. +// All applications are used to evaluate the aggregated health state. If not specified, all entries are +// returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of applications with HealthState value of OK (2) +// and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// includeSystemApplicationHealthStatistics - indicates whether the health statistics should include the +// fabric:/System application health statistics. False by default. +// If IncludeSystemApplicationHealthStatistics is set to true, the health statistics include the entities that +// belong to the fabric:/System application. +// Otherwise, the query result includes health statistics only for user applications. +// The health statistics must be included in the query result for this parameter to be applied. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealth(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (result ClusterHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealth", err.Error()) + } + + req, err := client.GetClusterHealthPreparer(ctx, nodesHealthStateFilter, applicationsHealthStateFilter, eventsHealthStateFilter, excludeHealthStatistics, includeSystemApplicationHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthPreparer prepares the GetClusterHealth request. +func (client BaseClient) GetClusterHealthPreparer(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if nodesHealthStateFilter != nil { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", *nodesHealthStateFilter) + } else { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", 0) + } + if applicationsHealthStateFilter != nil { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", *applicationsHealthStateFilter) + } else { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if includeSystemApplicationHealthStatistics != nil { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", *includeSystemApplicationHealthStatistics) + } else { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealth"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthSender sends the GetClusterHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthResponder handles the response to the GetClusterHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthResponder(resp *http.Response) (result ClusterHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthChunk gets the health of a Service Fabric cluster using health chunks. Includes the aggregated +// health state of the cluster, but none of the cluster entities. +// To expand the cluster health and get the health state of all or some of the entities, use the POST URI and specify +// the cluster health chunk query description. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthChunk(ctx context.Context, timeout *int64) (result ClusterHealthChunk, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthChunk") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthChunk", err.Error()) + } + + req, err := client.GetClusterHealthChunkPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthChunkSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthChunkResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthChunkPreparer prepares the GetClusterHealthChunk request. +func (client BaseClient) GetClusterHealthChunkPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealthChunk"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthChunkSender sends the GetClusterHealthChunk request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthChunkSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthChunkResponder handles the response to the GetClusterHealthChunk request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthChunkResponder(resp *http.Response) (result ClusterHealthChunk, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFilters gets the health of a Service Fabric cluster using health chunks. +// The health evaluation is done based on the input cluster health chunk query description. +// The query description allows users to specify health policies for evaluating the cluster and its children. +// Users can specify very flexible filters to select which cluster entities to return. The selection can be done based +// on the entities health state and based on the hierarchy. +// The query can return multi-level children of the entities based on the specified filters. For example, it can return +// one application with a specified name, and for this application, return +// only services that are in Error or Warning, and all partitions and replicas for one of these services. +// Parameters: +// clusterHealthChunkQueryDescription - describes the cluster and application health policies used to evaluate +// the cluster health and the filters to select which cluster entities to be returned. +// If the cluster health policy is present, it is used to evaluate the cluster events and the cluster nodes. If +// not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the +// default cluster health policy. +// By default, each application is evaluated using its specific application health policy, defined in the +// application manifest, or the default health policy, if no policy is defined in manifest. +// If the application health policy map is specified, and it has an entry for an application, the specified +// application health policy +// is used to evaluate the application health. +// Users can specify very flexible filters to select which cluster entities to include in response. The +// selection can be done based on the entities health state and based on the hierarchy. +// The query can return multi-level children of the entities based on the specified filters. For example, it +// can return one application with a specified name, and for this application, return +// only services that are in Error or Warning, and all partitions and replicas for one of these services. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFilters(ctx context.Context, clusterHealthChunkQueryDescription *ClusterHealthChunkQueryDescription, timeout *int64) (result ClusterHealthChunk, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthChunkUsingPolicyAndAdvancedFilters") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", err.Error()) + } + + req, err := client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer(ctx, clusterHealthChunkQueryDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer prepares the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer(ctx context.Context, clusterHealthChunkQueryDescription *ClusterHealthChunkQueryDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealthChunk"), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthChunkQueryDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthChunkQueryDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender sends the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder handles the response to the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder(resp *http.Response) (result ClusterHealthChunk, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthUsingPolicy use EventsHealthStateFilter to filter the collection of health events reported on the +// cluster based on the health state. +// Similarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and +// applications returned based on their aggregated health state. +// Use ClusterHealthPolicies to override the health policies used to evaluate the health. +// Parameters: +// nodesHealthStateFilter - allows filtering of the node health state objects returned in the result of cluster +// health query +// based on their health state. The possible values for this parameter include integer value of one of the +// following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the +// aggregated health state. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of nodes with HealthState value of OK (2) and +// Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationsHealthStateFilter - allows filtering of the application health state objects returned in the +// result of cluster health +// query based on their health state. +// The possible values for this parameter include integer value obtained from members or bitwise operations +// on members of HealthStateFilter enumeration. Only applications that match the filter are returned. +// All applications are used to evaluate the aggregated health state. If not specified, all entries are +// returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of applications with HealthState value of OK (2) +// and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// includeSystemApplicationHealthStatistics - indicates whether the health statistics should include the +// fabric:/System application health statistics. False by default. +// If IncludeSystemApplicationHealthStatistics is set to true, the health statistics include the entities that +// belong to the fabric:/System application. +// Otherwise, the query result includes health statistics only for user applications. +// The health statistics must be included in the query result for this parameter to be applied. +// clusterHealthPolicies - describes the health policies used to evaluate the cluster health. +// If not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the +// default cluster health policy. +// By default, each application is evaluated using its specific application health policy, defined in the +// application manifest, or the default health policy, if no policy is defined in manifest. +// If the application health policy map is specified, and it has an entry for an application, the specified +// application health policy +// is used to evaluate the application health. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthUsingPolicy(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *ClusterHealthPolicies, timeout *int64) (result ClusterHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthUsingPolicy", err.Error()) + } + + req, err := client.GetClusterHealthUsingPolicyPreparer(ctx, nodesHealthStateFilter, applicationsHealthStateFilter, eventsHealthStateFilter, excludeHealthStatistics, includeSystemApplicationHealthStatistics, clusterHealthPolicies, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthUsingPolicyPreparer prepares the GetClusterHealthUsingPolicy request. +func (client BaseClient) GetClusterHealthUsingPolicyPreparer(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *ClusterHealthPolicies, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if nodesHealthStateFilter != nil { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", *nodesHealthStateFilter) + } else { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", 0) + } + if applicationsHealthStateFilter != nil { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", *applicationsHealthStateFilter) + } else { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if includeSystemApplicationHealthStatistics != nil { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", *includeSystemApplicationHealthStatistics) + } else { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealth"), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthPolicies != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthPolicies)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthUsingPolicySender sends the GetClusterHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthUsingPolicyResponder handles the response to the GetClusterHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthUsingPolicyResponder(resp *http.Response) (result ClusterHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterManifest get the Service Fabric cluster manifest. The cluster manifest contains properties of the cluster +// that include different node types on the cluster, +// security configurations, fault, and upgrade domain topologies, etc. +// +// These properties are specified as part of the ClusterConfig.JSON file while deploying a stand-alone cluster. +// However, most of the information in the cluster manifest +// is generated internally by service fabric during cluster deployment in other deployment scenarios (e.g. when using +// Azure portal). +// +// The contents of the cluster manifest are for informational purposes only and users are not expected to take a +// dependency on the format of the file contents or its interpretation. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterManifest(ctx context.Context, timeout *int64) (result ClusterManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterManifest", err.Error()) + } + + req, err := client.GetClusterManifestPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", resp, "Failure sending request") + return + } + + result, err = client.GetClusterManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", resp, "Failure responding to request") + } + + return +} + +// GetClusterManifestPreparer prepares the GetClusterManifest request. +func (client BaseClient) GetClusterManifestPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterManifest"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterManifestSender sends the GetClusterManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterManifestResponder handles the response to the GetClusterManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterManifestResponder(resp *http.Response) (result ClusterManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterUpgradeProgress gets the current progress of the ongoing cluster upgrade. If no upgrade is currently in +// progress, get the last state of the previous cluster upgrade. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterUpgradeProgress(ctx context.Context, timeout *int64) (result ClusterUpgradeProgressObject, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterUpgradeProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterUpgradeProgress", err.Error()) + } + + req, err := client.GetClusterUpgradeProgressPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterUpgradeProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", resp, "Failure sending request") + return + } + + result, err = client.GetClusterUpgradeProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", resp, "Failure responding to request") + } + + return +} + +// GetClusterUpgradeProgressPreparer prepares the GetClusterUpgradeProgress request. +func (client BaseClient) GetClusterUpgradeProgressPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetUpgradeProgress"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterUpgradeProgressSender sends the GetClusterUpgradeProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterUpgradeProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterUpgradeProgressResponder handles the response to the GetClusterUpgradeProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterUpgradeProgressResponder(resp *http.Response) (result ClusterUpgradeProgressObject, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentStatus returns the status of the compose deployment that was created or in the process of being +// created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response +// includes the name, status, and other details about the deployment. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentStatus(ctx context.Context, deploymentName string, timeout *int64) (result ComposeDeploymentStatusInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentStatus") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentStatus", err.Error()) + } + + req, err := client.GetComposeDeploymentStatusPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentStatusSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentStatusResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentStatusPreparer prepares the GetComposeDeploymentStatus request. +func (client BaseClient) GetComposeDeploymentStatusPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentStatusSender sends the GetComposeDeploymentStatus request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentStatusSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentStatusResponder handles the response to the GetComposeDeploymentStatus request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentStatusResponder(resp *http.Response) (result ComposeDeploymentStatusInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentStatusList gets the status about the compose deployments that were created or in the process of +// being created in the Service Fabric cluster. The response includes the name, status, and other details about the +// compose deployments. If the list of deployments do not fit in a page, one page of results is returned as well as a +// continuation token, which can be used to get the next page. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentStatusList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result PagedComposeDeploymentStatusInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentStatusList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentStatusList", err.Error()) + } + + req, err := client.GetComposeDeploymentStatusListPreparer(ctx, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentStatusListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentStatusListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentStatusListPreparer prepares the GetComposeDeploymentStatusList request. +func (client BaseClient) GetComposeDeploymentStatusListPreparer(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ComposeDeployments"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentStatusListSender sends the GetComposeDeploymentStatusList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentStatusListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentStatusListResponder handles the response to the GetComposeDeploymentStatusList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentStatusListResponder(resp *http.Response) (result PagedComposeDeploymentStatusInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentUpgradeProgress returns the information about the state of the compose deployment upgrade along +// with details to aid debugging application health issues. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentUpgradeProgress(ctx context.Context, deploymentName string, timeout *int64) (result ComposeDeploymentUpgradeProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentUpgradeProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", err.Error()) + } + + req, err := client.GetComposeDeploymentUpgradeProgressPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentUpgradeProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentUpgradeProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentUpgradeProgressPreparer prepares the GetComposeDeploymentUpgradeProgress request. +func (client BaseClient) GetComposeDeploymentUpgradeProgressPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/GetUpgradeProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentUpgradeProgressSender sends the GetComposeDeploymentUpgradeProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentUpgradeProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentUpgradeProgressResponder handles the response to the GetComposeDeploymentUpgradeProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentUpgradeProgressResponder(resp *http.Response) (result ComposeDeploymentUpgradeProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetContainerLogsDeployedOnNode gets the container logs for container deployed on a Service Fabric node for the given +// code package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// tail - number of lines to show from the end of the logs. Default is 100. 'all' to show the complete logs. +// previous - specifies whether to get container logs from exited/dead containers of the code package instance. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetContainerLogsDeployedOnNode(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (result ContainerLogs, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetContainerLogsDeployedOnNode") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", err.Error()) + } + + req, err := client.GetContainerLogsDeployedOnNodePreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, tail, previous, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", nil, "Failure preparing request") + return + } + + resp, err := client.GetContainerLogsDeployedOnNodeSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", resp, "Failure sending request") + return + } + + result, err = client.GetContainerLogsDeployedOnNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", resp, "Failure responding to request") + } + + return +} + +// GetContainerLogsDeployedOnNodePreparer prepares the GetContainerLogsDeployedOnNode request. +func (client BaseClient) GetContainerLogsDeployedOnNodePreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "CodePackageName": autorest.Encode("query", codePackageName), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if len(tail) > 0 { + queryParameters["Tail"] = autorest.Encode("query", tail) + } + if previous != nil { + queryParameters["Previous"] = autorest.Encode("query", *previous) + } else { + queryParameters["Previous"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerLogs", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetContainerLogsDeployedOnNodeSender sends the GetContainerLogsDeployedOnNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetContainerLogsDeployedOnNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetContainerLogsDeployedOnNodeResponder handles the response to the GetContainerLogsDeployedOnNode request. The method always +// closes the http.Response Body. +func (client BaseClient) GetContainerLogsDeployedOnNodeResponder(resp *http.Response) (result ContainerLogs, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetContainersEventList the response is list of ContainerInstanceEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetContainersEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListContainerInstanceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetContainersEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetContainersEventList", err.Error()) + } + + req, err := client.GetContainersEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetContainersEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", resp, "Failure sending request") + return + } + + result, err = client.GetContainersEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", resp, "Failure responding to request") + } + + return +} + +// GetContainersEventListPreparer prepares the GetContainersEventList request. +func (client BaseClient) GetContainersEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Containers/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetContainersEventListSender sends the GetContainersEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetContainersEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetContainersEventListResponder handles the response to the GetContainersEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetContainersEventListResponder(resp *http.Response) (result ListContainerInstanceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetCorrelatedEventList the response is list of FabricEvents. +// Parameters: +// eventInstanceID - the EventInstanceId. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetCorrelatedEventList(ctx context.Context, eventInstanceID string, timeout *int64) (result ListFabricEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetCorrelatedEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetCorrelatedEventList", err.Error()) + } + + req, err := client.GetCorrelatedEventListPreparer(ctx, eventInstanceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetCorrelatedEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", resp, "Failure sending request") + return + } + + result, err = client.GetCorrelatedEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", resp, "Failure responding to request") + } + + return +} + +// GetCorrelatedEventListPreparer prepares the GetCorrelatedEventList request. +func (client BaseClient) GetCorrelatedEventListPreparer(ctx context.Context, eventInstanceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "eventInstanceId": autorest.Encode("path", eventInstanceID), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/CorrelatedEvents/{eventInstanceId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetCorrelatedEventListSender sends the GetCorrelatedEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetCorrelatedEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetCorrelatedEventListResponder handles the response to the GetCorrelatedEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetCorrelatedEventListResponder(resp *http.Response) (result ListFabricEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDataLossProgress gets the progress of a data loss operation started with StartDataLoss, using the OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDataLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionDataLossProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDataLossProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDataLossProgress", err.Error()) + } + + req, err := client.GetDataLossProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetDataLossProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", resp, "Failure sending request") + return + } + + result, err = client.GetDataLossProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", resp, "Failure responding to request") + } + + return +} + +// GetDataLossProgressPreparer prepares the GetDataLossProgress request. +func (client BaseClient) GetDataLossProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetDataLossProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDataLossProgressSender sends the GetDataLossProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDataLossProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDataLossProgressResponder handles the response to the GetDataLossProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDataLossProgressResponder(resp *http.Response) (result PartitionDataLossProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationHealth gets the information about health of an application deployed on a Service Fabric node. +// Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed +// application based on health state. Use DeployedServicePackagesHealthStateFilter to optionally filter for +// DeployedServicePackageHealth children based on health state. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedServicePackagesHealthStateFilter - allows filtering of the deployed service package health state +// objects returned in the result of deployed application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only deployed service packages that match the filter are returned. All deployed service packages are used to +// evaluate the aggregated health state of the deployed application. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value can be a combination of these values, obtained +// using the bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of service packages with HealthState value of OK +// (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result DeployedApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationHealth", err.Error()) + } + + req, err := client.GetDeployedApplicationHealthPreparer(ctx, nodeName, applicationID, eventsHealthStateFilter, deployedServicePackagesHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationHealthPreparer prepares the GetDeployedApplicationHealth request. +func (client BaseClient) GetDeployedApplicationHealthPreparer(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedServicePackagesHealthStateFilter != nil { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", *deployedServicePackagesHealthStateFilter) + } else { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationHealthSender sends the GetDeployedApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationHealthResponder handles the response to the GetDeployedApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationHealthResponder(resp *http.Response) (result DeployedApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationHealthUsingPolicy gets the information about health of an application deployed on a Service +// Fabric node using the specified policy. Use EventsHealthStateFilter to optionally filter for the collection of +// HealthEvent objects reported on the deployed application based on health state. Use +// DeployedServicePackagesHealthStateFilter to optionally filter for DeployedServicePackageHealth children based on +// health state. Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. +// This API only uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored +// while evaluating the health of the deployed application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedServicePackagesHealthStateFilter - allows filtering of the deployed service package health state +// objects returned in the result of deployed application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only deployed service packages that match the filter are returned. All deployed service packages are used to +// evaluate the aggregated health state of the deployed application. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value can be a combination of these values, obtained +// using the bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of service packages with HealthState value of OK +// (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result DeployedApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", err.Error()) + } + + req, err := client.GetDeployedApplicationHealthUsingPolicyPreparer(ctx, nodeName, applicationID, eventsHealthStateFilter, deployedServicePackagesHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationHealthUsingPolicyPreparer prepares the GetDeployedApplicationHealthUsingPolicy request. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicyPreparer(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedServicePackagesHealthStateFilter != nil { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", *deployedServicePackagesHealthStateFilter) + } else { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationHealthUsingPolicySender sends the GetDeployedApplicationHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationHealthUsingPolicyResponder handles the response to the GetDeployedApplicationHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicyResponder(resp *http.Response) (result DeployedApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationInfo this query returns system application information if the application ID provided is for +// system application. Results encompass deployed applications in active, activating, and downloading states. This +// query requires that the node name corresponds to a node on the cluster. The query fails if the provided node name +// does not point to any active Service Fabric nodes on the cluster. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// includeHealthState - include the health state of an entity. +// If this parameter is false or not specified, then the health state returned is "Unknown". +// When set to true, the query goes in parallel to the node and the health system service before the results +// are merged. +// As a result, the query is more expensive and may take a longer time. +func (client BaseClient) GetDeployedApplicationInfo(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (result DeployedApplicationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationInfo", err.Error()) + } + + req, err := client.GetDeployedApplicationInfoPreparer(ctx, nodeName, applicationID, timeout, includeHealthState) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationInfoPreparer prepares the GetDeployedApplicationInfo request. +func (client BaseClient) GetDeployedApplicationInfoPreparer(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if includeHealthState != nil { + queryParameters["IncludeHealthState"] = autorest.Encode("query", *includeHealthState) + } else { + queryParameters["IncludeHealthState"] = autorest.Encode("query", false) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationInfoSender sends the GetDeployedApplicationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationInfoResponder handles the response to the GetDeployedApplicationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationInfoResponder(resp *http.Response) (result DeployedApplicationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationInfoList gets the list of applications deployed on a Service Fabric node. The results do not +// include information about deployed system applications unless explicitly queried for by ID. Results encompass +// deployed applications in active, activating, and downloading states. This query requires that the node name +// corresponds to a node on the cluster. The query fails if the provided node name does not point to any active Service +// Fabric nodes on the cluster. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// includeHealthState - include the health state of an entity. +// If this parameter is false or not specified, then the health state returned is "Unknown". +// When set to true, the query goes in parallel to the node and the health system service before the results +// are merged. +// As a result, the query is more expensive and may take a longer time. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetDeployedApplicationInfoList(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (result PagedDeployedApplicationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationInfoList", err.Error()) + } + + req, err := client.GetDeployedApplicationInfoListPreparer(ctx, nodeName, timeout, includeHealthState, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationInfoListPreparer prepares the GetDeployedApplicationInfoList request. +func (client BaseClient) GetDeployedApplicationInfoListPreparer(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if includeHealthState != nil { + queryParameters["IncludeHealthState"] = autorest.Encode("query", *includeHealthState) + } else { + queryParameters["IncludeHealthState"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationInfoListSender sends the GetDeployedApplicationInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationInfoListResponder handles the response to the GetDeployedApplicationInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationInfoListResponder(resp *http.Response) (result PagedDeployedApplicationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedCodePackageInfoList gets the list of code packages deployed on a Service Fabric node for the given +// application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedCodePackageInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (result ListDeployedCodePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedCodePackageInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedCodePackageInfoList", err.Error()) + } + + req, err := client.GetDeployedCodePackageInfoListPreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedCodePackageInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedCodePackageInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedCodePackageInfoListPreparer prepares the GetDeployedCodePackageInfoList request. +func (client BaseClient) GetDeployedCodePackageInfoListPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if len(codePackageName) > 0 { + queryParameters["CodePackageName"] = autorest.Encode("query", codePackageName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedCodePackageInfoListSender sends the GetDeployedCodePackageInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedCodePackageInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedCodePackageInfoListResponder handles the response to the GetDeployedCodePackageInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedCodePackageInfoListResponder(resp *http.Response) (result ListDeployedCodePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageHealth gets the information about health of a service package for a specific application +// deployed on a Service Fabric node. Use EventsHealthStateFilter to optionally filter for the collection of +// HealthEvent objects reported on the deployed service package based on health state. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (result DeployedServicePackageHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageHealth", err.Error()) + } + + req, err := client.GetDeployedServicePackageHealthPreparer(ctx, nodeName, applicationID, servicePackageName, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageHealthPreparer prepares the GetDeployedServicePackageHealth request. +func (client BaseClient) GetDeployedServicePackageHealthPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageHealthSender sends the GetDeployedServicePackageHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageHealthResponder handles the response to the GetDeployedServicePackageHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageHealthResponder(resp *http.Response) (result DeployedServicePackageHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageHealthUsingPolicy gets the information about health of a service package for a specific +// application deployed on a Service Fabric node. using the specified policy. Use EventsHealthStateFilter to optionally +// filter for the collection of HealthEvent objects reported on the deployed service package based on health state. Use +// ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only uses +// 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while evaluating +// the health of the deployed service package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result DeployedServicePackageHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", err.Error()) + } + + req, err := client.GetDeployedServicePackageHealthUsingPolicyPreparer(ctx, nodeName, applicationID, servicePackageName, eventsHealthStateFilter, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageHealthUsingPolicyPreparer prepares the GetDeployedServicePackageHealthUsingPolicy request. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicyPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageHealthUsingPolicySender sends the GetDeployedServicePackageHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageHealthUsingPolicyResponder handles the response to the GetDeployedServicePackageHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicyResponder(resp *http.Response) (result DeployedServicePackageHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageInfoList returns the information about the service packages deployed on a Service Fabric +// node for the given application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageInfoList(ctx context.Context, nodeName string, applicationID string, timeout *int64) (result ListDeployedServicePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageInfoList", err.Error()) + } + + req, err := client.GetDeployedServicePackageInfoListPreparer(ctx, nodeName, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageInfoListPreparer prepares the GetDeployedServicePackageInfoList request. +func (client BaseClient) GetDeployedServicePackageInfoListPreparer(ctx context.Context, nodeName string, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageInfoListSender sends the GetDeployedServicePackageInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageInfoListResponder handles the response to the GetDeployedServicePackageInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageInfoListResponder(resp *http.Response) (result ListDeployedServicePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageInfoListByName returns the information about the service packages deployed on a Service +// Fabric node for the given application. These results are of service packages whose name match exactly the service +// package name specified as the parameter. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageInfoListByName(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (result ListDeployedServicePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageInfoListByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", err.Error()) + } + + req, err := client.GetDeployedServicePackageInfoListByNamePreparer(ctx, nodeName, applicationID, servicePackageName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageInfoListByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageInfoListByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageInfoListByNamePreparer prepares the GetDeployedServicePackageInfoListByName request. +func (client BaseClient) GetDeployedServicePackageInfoListByNamePreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageInfoListByNameSender sends the GetDeployedServicePackageInfoListByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageInfoListByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageInfoListByNameResponder handles the response to the GetDeployedServicePackageInfoListByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageInfoListByNameResponder(resp *http.Response) (result ListDeployedServicePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaDetailInfo gets the details of the replica deployed on a Service Fabric node. The +// information includes service kind, service name, current service operation, current service operation start date +// time, partition ID, replica/instance ID, reported load, and other information. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaDetailInfo(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result DeployedServiceReplicaDetailInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaDetailInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaDetailInfoPreparer(ctx, nodeName, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaDetailInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaDetailInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaDetailInfoPreparer prepares the GetDeployedServiceReplicaDetailInfo request. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetDetail", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaDetailInfoSender sends the GetDeployedServiceReplicaDetailInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaDetailInfoResponder handles the response to the GetDeployedServiceReplicaDetailInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoResponder(resp *http.Response) (result DeployedServiceReplicaDetailInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaDetailInfoByPartitionID gets the details of the replica deployed on a Service Fabric node. +// The information includes service kind, service name, current service operation, current service operation start date +// time, partition ID, replica/instance ID, reported load, and other information. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionID(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (result DeployedServiceReplicaDetailInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaDetailInfoByPartitionID") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer(ctx, nodeName, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaDetailInfoByPartitionIDSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaDetailInfoByPartitionIDResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer prepares the GetDeployedServiceReplicaDetailInfoByPartitionID request. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDSender sends the GetDeployedServiceReplicaDetailInfoByPartitionID request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDResponder handles the response to the GetDeployedServiceReplicaDetailInfoByPartitionID request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDResponder(resp *http.Response) (result DeployedServiceReplicaDetailInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaInfoList gets the list containing the information about replicas deployed on a Service +// Fabric node. The information include partition ID, replica ID, status of the replica, name of the service, name of +// the service type, and other information. Use PartitionId or ServiceManifestName query parameters to return +// information about the deployed replicas matching the specified values for those parameters. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// partitionID - the identity of the partition. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaInfoList(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (result ListDeployedServiceReplicaInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaInfoListPreparer(ctx, nodeName, applicationID, partitionID, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaInfoListPreparer prepares the GetDeployedServiceReplicaInfoList request. +func (client BaseClient) GetDeployedServiceReplicaInfoListPreparer(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if partitionID != nil { + queryParameters["PartitionId"] = autorest.Encode("query", *partitionID) + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaInfoListSender sends the GetDeployedServiceReplicaInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaInfoListResponder handles the response to the GetDeployedServiceReplicaInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaInfoListResponder(resp *http.Response) (result ListDeployedServiceReplicaInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceTypeInfoByName gets the list containing the information about a specific service type from the +// applications deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its +// registration status, the code package that registered it and activation ID of the service package. Each entry +// represents one activation of a service type, differentiated by the activation ID. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceTypeName - specifies the name of a Service Fabric service type. +// serviceManifestName - the name of the service manifest to filter the list of deployed service type +// information. If specified, the response will only contain the information about service types that are +// defined in this service manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceTypeInfoByName(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (result ListDeployedServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceTypeInfoByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", err.Error()) + } + + req, err := client.GetDeployedServiceTypeInfoByNamePreparer(ctx, nodeName, applicationID, serviceTypeName, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceTypeInfoByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceTypeInfoByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceTypeInfoByNamePreparer prepares the GetDeployedServiceTypeInfoByName request. +func (client BaseClient) GetDeployedServiceTypeInfoByNamePreparer(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "serviceTypeName": serviceTypeName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes/{serviceTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceTypeInfoByNameSender sends the GetDeployedServiceTypeInfoByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceTypeInfoByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceTypeInfoByNameResponder handles the response to the GetDeployedServiceTypeInfoByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceTypeInfoByNameResponder(resp *http.Response) (result ListDeployedServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceTypeInfoList gets the list containing the information about service types from the applications +// deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its registration +// status, the code package that registered it and activation ID of the service package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of the service manifest to filter the list of deployed service type +// information. If specified, the response will only contain the information about service types that are +// defined in this service manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceTypeInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (result ListDeployedServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", err.Error()) + } + + req, err := client.GetDeployedServiceTypeInfoListPreparer(ctx, nodeName, applicationID, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceTypeInfoListPreparer prepares the GetDeployedServiceTypeInfoList request. +func (client BaseClient) GetDeployedServiceTypeInfoListPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceTypeInfoListSender sends the GetDeployedServiceTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceTypeInfoListResponder handles the response to the GetDeployedServiceTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceTypeInfoListResponder(resp *http.Response) (result ListDeployedServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetFaultOperationList gets the a list of user-induced fault operations filtered by provided input. +// Parameters: +// typeFilter - used to filter on OperationType for user-induced operations. +// +// - 65535 - select all +// - 1 - select PartitionDataLoss. +// - 2 - select PartitionQuorumLoss. +// - 4 - select PartitionRestart. +// - 8 - select NodeTransition. +// stateFilter - used to filter on OperationState's for user-induced operations. +// +// - 65535 - select All +// - 1 - select Running +// - 2 - select RollingBack +// - 8 - select Completed +// - 16 - select Faulted +// - 32 - select Cancelled +// - 64 - select ForceCancelled +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetFaultOperationList(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (result ListOperationStatus, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetFaultOperationList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetFaultOperationList", err.Error()) + } + + req, err := client.GetFaultOperationListPreparer(ctx, typeFilter, stateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", nil, "Failure preparing request") + return + } + + resp, err := client.GetFaultOperationListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", resp, "Failure sending request") + return + } + + result, err = client.GetFaultOperationListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", resp, "Failure responding to request") + } + + return +} + +// GetFaultOperationListPreparer prepares the GetFaultOperationList request. +func (client BaseClient) GetFaultOperationListPreparer(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "StateFilter": autorest.Encode("query", stateFilter), + "TypeFilter": autorest.Encode("query", typeFilter), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Faults/"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetFaultOperationListSender sends the GetFaultOperationList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetFaultOperationListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetFaultOperationListResponder handles the response to the GetFaultOperationList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetFaultOperationListResponder(resp *http.Response) (result ListOperationStatus, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreContent returns the information about the image store content at the specified contentPath. The +// contentPath is relative to the root of the image store. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result ImageStoreContent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreContent") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreContent", err.Error()) + } + + req, err := client.GetImageStoreContentPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreContentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreContentPreparer prepares the GetImageStoreContent request. +func (client BaseClient) GetImageStoreContentPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreContentSender sends the GetImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreContentResponder handles the response to the GetImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreContentResponder(resp *http.Response) (result ImageStoreContent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreRootContent returns the information about the image store content at the root of the image store. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreRootContent(ctx context.Context, timeout *int64) (result ImageStoreContent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreRootContent") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreRootContent", err.Error()) + } + + req, err := client.GetImageStoreRootContentPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreRootContentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreRootContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreRootContentPreparer prepares the GetImageStoreRootContent request. +func (client BaseClient) GetImageStoreRootContentPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreRootContentSender sends the GetImageStoreRootContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreRootContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreRootContentResponder handles the response to the GetImageStoreRootContent request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreRootContentResponder(resp *http.Response) (result ImageStoreContent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreUploadSessionByID gets the image store upload session identified by the given ID. User can query the +// upload session at any time during uploading. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreUploadSessionByID(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result UploadSession, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreUploadSessionByID") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreUploadSessionByID", err.Error()) + } + + req, err := client.GetImageStoreUploadSessionByIDPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreUploadSessionByIDSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreUploadSessionByIDResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreUploadSessionByIDPreparer prepares the GetImageStoreUploadSessionByID request. +func (client BaseClient) GetImageStoreUploadSessionByIDPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/GetUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreUploadSessionByIDSender sends the GetImageStoreUploadSessionByID request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreUploadSessionByIDSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreUploadSessionByIDResponder handles the response to the GetImageStoreUploadSessionByID request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreUploadSessionByIDResponder(resp *http.Response) (result UploadSession, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreUploadSessionByPath gets the image store upload session associated with the given image store relative +// path. User can query the upload session at any time during uploading. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreUploadSessionByPath(ctx context.Context, contentPath string, timeout *int64) (result UploadSession, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreUploadSessionByPath") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", err.Error()) + } + + req, err := client.GetImageStoreUploadSessionByPathPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreUploadSessionByPathSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreUploadSessionByPathResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreUploadSessionByPathPreparer prepares the GetImageStoreUploadSessionByPath request. +func (client BaseClient) GetImageStoreUploadSessionByPathPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}/$/GetUploadSession", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreUploadSessionByPathSender sends the GetImageStoreUploadSessionByPath request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreUploadSessionByPathSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreUploadSessionByPathResponder handles the response to the GetImageStoreUploadSessionByPath request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreUploadSessionByPathResponder(resp *http.Response) (result UploadSession, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNameExistsInfo returns whether the specified Service Fabric name exists. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNameExistsInfo(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNameExistsInfo") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNameExistsInfo", err.Error()) + } + + req, err := client.GetNameExistsInfoPreparer(ctx, nameID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNameExistsInfoSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNameExistsInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", resp, "Failure responding to request") + } + + return +} + +// GetNameExistsInfoPreparer prepares the GetNameExistsInfo request. +func (client BaseClient) GetNameExistsInfoPreparer(ctx context.Context, nameID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNameExistsInfoSender sends the GetNameExistsInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNameExistsInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNameExistsInfoResponder handles the response to the GetNameExistsInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNameExistsInfoResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// GetNodeEventList the response is list of NodeEvent objects. +// Parameters: +// nodeName - the name of the node. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetNodeEventList(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListNodeEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeEventList", err.Error()) + } + + req, err := client.GetNodeEventListPreparer(ctx, nodeName, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", resp, "Failure sending request") + return + } + + result, err = client.GetNodeEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", resp, "Failure responding to request") + } + + return +} + +// GetNodeEventListPreparer prepares the GetNodeEventList request. +func (client BaseClient) GetNodeEventListPreparer(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Nodes/{nodeName}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeEventListSender sends the GetNodeEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeEventListResponder handles the response to the GetNodeEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeEventListResponder(resp *http.Response) (result ListNodeEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeHealth gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the collection of +// health events reported on the node based on the health state. If the node that you specify by name does not exist in +// the health store, this returns an error. +// Parameters: +// nodeName - the name of the node. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeHealth(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (result NodeHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeHealth", err.Error()) + } + + req, err := client.GetNodeHealthPreparer(ctx, nodeName, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", resp, "Failure sending request") + return + } + + result, err = client.GetNodeHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", resp, "Failure responding to request") + } + + return +} + +// GetNodeHealthPreparer prepares the GetNodeHealth request. +func (client BaseClient) GetNodeHealthPreparer(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeHealthSender sends the GetNodeHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeHealthResponder handles the response to the GetNodeHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeHealthResponder(resp *http.Response) (result NodeHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeHealthUsingPolicy gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the +// collection of health events reported on the node based on the health state. Use ClusterHealthPolicy in the POST body +// to override the health policies used to evaluate the health. If the node that you specify by name does not exist in +// the health store, this returns an error. +// Parameters: +// nodeName - the name of the node. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// clusterHealthPolicy - describes the health policies used to evaluate the health of a cluster or node. If not +// present, the health evaluation uses the health policy from cluster manifest or the default health policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeHealthUsingPolicy(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *ClusterHealthPolicy, timeout *int64) (result NodeHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeHealthUsingPolicy", err.Error()) + } + + req, err := client.GetNodeHealthUsingPolicyPreparer(ctx, nodeName, eventsHealthStateFilter, clusterHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetNodeHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetNodeHealthUsingPolicyPreparer prepares the GetNodeHealthUsingPolicy request. +func (client BaseClient) GetNodeHealthUsingPolicyPreparer(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *ClusterHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeHealthUsingPolicySender sends the GetNodeHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeHealthUsingPolicyResponder handles the response to the GetNodeHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeHealthUsingPolicyResponder(resp *http.Response) (result NodeHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeInfo the response includes the name, status, ID, health, uptime, and other details about the node. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeInfo(ctx context.Context, nodeName string, timeout *int64) (result NodeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeInfo", err.Error()) + } + + req, err := client.GetNodeInfoPreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNodeInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", resp, "Failure responding to request") + } + + return +} + +// GetNodeInfoPreparer prepares the GetNodeInfo request. +func (client BaseClient) GetNodeInfoPreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeInfoSender sends the GetNodeInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeInfoResponder handles the response to the GetNodeInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeInfoResponder(resp *http.Response) (result NodeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeInfoList the response includes the name, status, ID, health, uptime, and other details about the nodes. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// nodeStatusFilter - allows filtering the nodes based on the NodeStatus. Only the nodes that are matching the +// specified filter value will be returned. The filter value can be one of the following. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeInfoList(ctx context.Context, continuationToken string, nodeStatusFilter NodeStatusFilter, maxResults *int64, timeout *int64) (result PagedNodeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeInfoList", err.Error()) + } + + req, err := client.GetNodeInfoListPreparer(ctx, continuationToken, nodeStatusFilter, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetNodeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetNodeInfoListPreparer prepares the GetNodeInfoList request. +func (client BaseClient) GetNodeInfoListPreparer(ctx context.Context, continuationToken string, nodeStatusFilter NodeStatusFilter, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.3" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if len(string(nodeStatusFilter)) > 0 { + queryParameters["NodeStatusFilter"] = autorest.Encode("query", nodeStatusFilter) + } else { + queryParameters["NodeStatusFilter"] = autorest.Encode("query", "default") + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Nodes"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeInfoListSender sends the GetNodeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeInfoListResponder handles the response to the GetNodeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeInfoListResponder(resp *http.Response) (result PagedNodeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeLoadInfo retrieves the load information of a Service Fabric node for all the metrics that have load or +// capacity defined. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeLoadInfo(ctx context.Context, nodeName string, timeout *int64) (result NodeLoadInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeLoadInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeLoadInfo", err.Error()) + } + + req, err := client.GetNodeLoadInfoPreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeLoadInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNodeLoadInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", resp, "Failure responding to request") + } + + return +} + +// GetNodeLoadInfoPreparer prepares the GetNodeLoadInfo request. +func (client BaseClient) GetNodeLoadInfoPreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeLoadInfoSender sends the GetNodeLoadInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeLoadInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeLoadInfoResponder handles the response to the GetNodeLoadInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeLoadInfoResponder(resp *http.Response) (result NodeLoadInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodesEventList the response is list of NodeEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetNodesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListNodeEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodesEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodesEventList", err.Error()) + } + + req, err := client.GetNodesEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodesEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", resp, "Failure sending request") + return + } + + result, err = client.GetNodesEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", resp, "Failure responding to request") + } + + return +} + +// GetNodesEventListPreparer prepares the GetNodesEventList request. +func (client BaseClient) GetNodesEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Nodes/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodesEventListSender sends the GetNodesEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodesEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodesEventListResponder handles the response to the GetNodesEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodesEventListResponder(resp *http.Response) (result ListNodeEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeTransitionProgress gets the progress of an operation started with StartNodeTransition using the provided +// OperationId. +// Parameters: +// nodeName - the name of the node. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeTransitionProgress(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (result NodeTransitionProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeTransitionProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeTransitionProgress", err.Error()) + } + + req, err := client.GetNodeTransitionProgressPreparer(ctx, nodeName, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeTransitionProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", resp, "Failure sending request") + return + } + + result, err = client.GetNodeTransitionProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", resp, "Failure responding to request") + } + + return +} + +// GetNodeTransitionProgressPreparer prepares the GetNodeTransitionProgress request. +func (client BaseClient) GetNodeTransitionProgressPreparer(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Nodes/{nodeName}/$/GetTransitionProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeTransitionProgressSender sends the GetNodeTransitionProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeTransitionProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeTransitionProgressResponder handles the response to the GetNodeTransitionProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeTransitionProgressResponder(resp *http.Response) (result NodeTransitionProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupConfigurationInfo gets the Service Fabric Backup configuration information for the specified +// partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionBackupConfigurationInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result PartitionBackupConfigurationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetPartitionBackupConfigurationInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupConfigurationInfoPreparer prepares the GetPartitionBackupConfigurationInfo request. +func (client BaseClient) GetPartitionBackupConfigurationInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupConfigurationInfoSender sends the GetPartitionBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupConfigurationInfoResponder handles the response to the GetPartitionBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupConfigurationInfoResponder(resp *http.Response) (result PartitionBackupConfigurationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupList returns a list of backups available for the specified partition. The server enumerates all +// the backups available in the backup store configured in the backup policy. It also allows filtering of the result +// based on start and end datetime or just fetching the latest available backup for the partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +func (client BaseClient) GetPartitionBackupList(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupList", err.Error()) + } + + req, err := client.GetPartitionBackupListPreparer(ctx, partitionID, timeout, latest, startDateTimeFilter, endDateTimeFilter) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupListPreparer prepares the GetPartitionBackupList request. +func (client BaseClient) GetPartitionBackupListPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupListSender sends the GetPartitionBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupListResponder handles the response to the GetPartitionBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupProgress returns information about the state of the latest backup along with details or failure +// reason in case of completion. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionBackupProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result BackupProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupProgress", err.Error()) + } + + req, err := client.GetPartitionBackupProgressPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupProgressPreparer prepares the GetPartitionBackupProgress request. +func (client BaseClient) GetPartitionBackupProgressPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackupProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupProgressSender sends the GetPartitionBackupProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupProgressResponder handles the response to the GetPartitionBackupProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupProgressResponder(resp *http.Response) (result BackupProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionEventList the response is list of PartitionEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListPartitionEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionEventList", err.Error()) + } + + req, err := client.GetPartitionEventListPreparer(ctx, partitionID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionEventListPreparer prepares the GetPartitionEventList request. +func (client BaseClient) GetPartitionEventListPreparer(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionEventListSender sends the GetPartitionEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionEventListResponder handles the response to the GetPartitionEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionEventListResponder(resp *http.Response) (result ListPartitionEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionHealth use EventsHealthStateFilter to filter the collection of health events reported on the service +// based on the health state. +// Use ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition. +// If you specify a partition that does not exist in the health store, this request returns an error. +// Parameters: +// partitionID - the identity of the partition. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// replicasHealthStateFilter - allows filtering the collection of ReplicaHealthState objects on the partition. +// The value can be obtained from members or bitwise operations on members of HealthStateFilter. Only replicas +// that match the filter will be returned. All replicas will be used to evaluate the aggregated health state. +// If not specified, all entries will be returned.The state values are flag-based enumeration, so the value +// could be a combination of these values obtained using bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) will be returned. The +// possible values for this parameter include integer value of one of the following health states. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionHealth(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result PartitionHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionHealth", err.Error()) + } + + req, err := client.GetPartitionHealthPreparer(ctx, partitionID, eventsHealthStateFilter, replicasHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", resp, "Failure responding to request") + } + + return +} + +// GetPartitionHealthPreparer prepares the GetPartitionHealth request. +func (client BaseClient) GetPartitionHealthPreparer(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if replicasHealthStateFilter != nil { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", *replicasHealthStateFilter) + } else { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionHealthSender sends the GetPartitionHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionHealthResponder handles the response to the GetPartitionHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionHealthResponder(resp *http.Response) (result PartitionHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionHealthUsingPolicy gets the health information of the specified partition. +// If the application health policy is specified, the health evaluation uses it to get the aggregated health state. +// If the policy is not specified, the health evaluation uses the application health policy defined in the application +// manifest, or the default health policy, if no policy is defined in the manifest. +// Use EventsHealthStateFilter to filter the collection of health events reported on the partition based on the health +// state. +// Use ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition. Use +// ApplicationHealthPolicy in the POST body to override the health policies used to evaluate the health. +// If you specify a partition that does not exist in the health store, this request returns an error. +// Parameters: +// partitionID - the identity of the partition. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// replicasHealthStateFilter - allows filtering the collection of ReplicaHealthState objects on the partition. +// The value can be obtained from members or bitwise operations on members of HealthStateFilter. Only replicas +// that match the filter will be returned. All replicas will be used to evaluate the aggregated health state. +// If not specified, all entries will be returned.The state values are flag-based enumeration, so the value +// could be a combination of these values obtained using bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) will be returned. The +// possible values for this parameter include integer value of one of the following health states. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result PartitionHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", err.Error()) + } + + req, err := client.GetPartitionHealthUsingPolicyPreparer(ctx, partitionID, eventsHealthStateFilter, replicasHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetPartitionHealthUsingPolicyPreparer prepares the GetPartitionHealthUsingPolicy request. +func (client BaseClient) GetPartitionHealthUsingPolicyPreparer(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if replicasHealthStateFilter != nil { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", *replicasHealthStateFilter) + } else { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionHealthUsingPolicySender sends the GetPartitionHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionHealthUsingPolicyResponder handles the response to the GetPartitionHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionHealthUsingPolicyResponder(resp *http.Response) (result PartitionHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionInfo gets the information about the specified partition. The response includes the partition ID, +// partitioning scheme information, keys supported by the partition, status, health, and other details about the +// partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result ServicePartitionInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionInfo", err.Error()) + } + + req, err := client.GetPartitionInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", resp, "Failure responding to request") + } + + return +} + +// GetPartitionInfoPreparer prepares the GetPartitionInfo request. +func (client BaseClient) GetPartitionInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionInfoSender sends the GetPartitionInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionInfoResponder handles the response to the GetPartitionInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionInfoResponder(resp *http.Response) (result ServicePartitionInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionInfoList the response includes the partition ID, partitioning scheme information, keys supported by the +// partition, status, health, and other details about the partition. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionInfoList(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (result PagedServicePartitionInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionInfoList", err.Error()) + } + + req, err := client.GetPartitionInfoListPreparer(ctx, serviceID, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionInfoListPreparer prepares the GetPartitionInfoList request. +func (client BaseClient) GetPartitionInfoListPreparer(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetPartitions", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionInfoListSender sends the GetPartitionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionInfoListResponder handles the response to the GetPartitionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionInfoListResponder(resp *http.Response) (result PagedServicePartitionInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionLoadInformation returns information about the load of a specified partition. +// The response includes a list of load reports for a Service Fabric partition. +// Each report includes the load metric name, value, and last reported time in UTC. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionLoadInformation(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result PartitionLoadInformation, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionLoadInformation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionLoadInformation", err.Error()) + } + + req, err := client.GetPartitionLoadInformationPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionLoadInformationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionLoadInformationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", resp, "Failure responding to request") + } + + return +} + +// GetPartitionLoadInformationPreparer prepares the GetPartitionLoadInformation request. +func (client BaseClient) GetPartitionLoadInformationPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionLoadInformationSender sends the GetPartitionLoadInformation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionLoadInformationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionLoadInformationResponder handles the response to the GetPartitionLoadInformation request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionLoadInformationResponder(resp *http.Response) (result PartitionLoadInformation, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionReplicaEventList the response is list of ReplicaEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionReplicaEventList(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListReplicaEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionReplicaEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionReplicaEventList", err.Error()) + } + + req, err := client.GetPartitionReplicaEventListPreparer(ctx, partitionID, replicaID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionReplicaEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionReplicaEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionReplicaEventListPreparer prepares the GetPartitionReplicaEventList request. +func (client BaseClient) GetPartitionReplicaEventListPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Replicas/{replicaId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionReplicaEventListSender sends the GetPartitionReplicaEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionReplicaEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionReplicaEventListResponder handles the response to the GetPartitionReplicaEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionReplicaEventListResponder(resp *http.Response) (result ListReplicaEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionReplicasEventList the response is list of ReplicaEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionReplicasEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListReplicaEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionReplicasEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionReplicasEventList", err.Error()) + } + + req, err := client.GetPartitionReplicasEventListPreparer(ctx, partitionID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionReplicasEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionReplicasEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionReplicasEventListPreparer prepares the GetPartitionReplicasEventList request. +func (client BaseClient) GetPartitionReplicasEventListPreparer(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Replicas/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionReplicasEventListSender sends the GetPartitionReplicasEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionReplicasEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionReplicasEventListResponder handles the response to the GetPartitionReplicasEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionReplicasEventListResponder(resp *http.Response) (result ListReplicaEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionRestartProgress gets the progress of a PartitionRestart started with StartPartitionRestart using the +// provided OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionRestartProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionRestartProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionRestartProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionRestartProgress", err.Error()) + } + + req, err := client.GetPartitionRestartProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionRestartProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionRestartProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionRestartProgressPreparer prepares the GetPartitionRestartProgress request. +func (client BaseClient) GetPartitionRestartProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetRestartProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionRestartProgressSender sends the GetPartitionRestartProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionRestartProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionRestartProgressResponder handles the response to the GetPartitionRestartProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionRestartProgressResponder(resp *http.Response) (result PartitionRestartProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionRestoreProgress returns information about the state of the latest restore operation along with details +// or failure reason in case of completion. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionRestoreProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result RestoreProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionRestoreProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionRestoreProgress", err.Error()) + } + + req, err := client.GetPartitionRestoreProgressPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionRestoreProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionRestoreProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionRestoreProgressPreparer prepares the GetPartitionRestoreProgress request. +func (client BaseClient) GetPartitionRestoreProgressPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetRestoreProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionRestoreProgressSender sends the GetPartitionRestoreProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionRestoreProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionRestoreProgressResponder handles the response to the GetPartitionRestoreProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionRestoreProgressResponder(resp *http.Response) (result RestoreProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionsEventList the response is list of PartitionEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListPartitionEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionsEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionsEventList", err.Error()) + } + + req, err := client.GetPartitionsEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionsEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionsEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionsEventListPreparer prepares the GetPartitionsEventList request. +func (client BaseClient) GetPartitionsEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Partitions/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionsEventListSender sends the GetPartitionsEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionsEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionsEventListResponder handles the response to the GetPartitionsEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionsEventListResponder(resp *http.Response) (result ListPartitionEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPropertyInfo gets the specified Service Fabric property under a given name. This will always return both value +// and metadata. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyName - specifies the name of the property to get. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPropertyInfo(ctx context.Context, nameID string, propertyName string, timeout *int64) (result PropertyInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPropertyInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPropertyInfo", err.Error()) + } + + req, err := client.GetPropertyInfoPreparer(ctx, nameID, propertyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPropertyInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPropertyInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", resp, "Failure responding to request") + } + + return +} + +// GetPropertyInfoPreparer prepares the GetPropertyInfo request. +func (client BaseClient) GetPropertyInfoPreparer(ctx context.Context, nameID string, propertyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "PropertyName": autorest.Encode("query", propertyName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPropertyInfoSender sends the GetPropertyInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPropertyInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPropertyInfoResponder handles the response to the GetPropertyInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPropertyInfoResponder(resp *http.Response) (result PropertyInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPropertyInfoList a Service Fabric name can have one or more named properties that store custom information. This +// operation gets the information about these properties in a paged list. The information includes name, value, and +// metadata about each of the properties. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// includeValues - allows specifying whether to include the values of the properties returned. True if values +// should be returned with the metadata; False to return only property metadata. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPropertyInfoList(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (result PagedPropertyInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPropertyInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPropertyInfoList", err.Error()) + } + + req, err := client.GetPropertyInfoListPreparer(ctx, nameID, includeValues, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPropertyInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetPropertyInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", resp, "Failure responding to request") + } + + return +} + +// GetPropertyInfoListPreparer prepares the GetPropertyInfoList request. +func (client BaseClient) GetPropertyInfoListPreparer(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if includeValues != nil { + queryParameters["IncludeValues"] = autorest.Encode("query", *includeValues) + } else { + queryParameters["IncludeValues"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperties", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPropertyInfoListSender sends the GetPropertyInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPropertyInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPropertyInfoListResponder handles the response to the GetPropertyInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPropertyInfoListResponder(resp *http.Response) (result PagedPropertyInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetProvisionedFabricCodeVersionInfoList gets a list of information about fabric code versions that are provisioned +// in the cluster. The parameter CodeVersion can be used to optionally filter the output to only that particular +// version. +// Parameters: +// codeVersion - the product version of Service Fabric. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoList(ctx context.Context, codeVersion string, timeout *int64) (result ListFabricCodeVersionInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetProvisionedFabricCodeVersionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", err.Error()) + } + + req, err := client.GetProvisionedFabricCodeVersionInfoListPreparer(ctx, codeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetProvisionedFabricCodeVersionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetProvisionedFabricCodeVersionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetProvisionedFabricCodeVersionInfoListPreparer prepares the GetProvisionedFabricCodeVersionInfoList request. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListPreparer(ctx context.Context, codeVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(codeVersion) > 0 { + queryParameters["CodeVersion"] = autorest.Encode("query", codeVersion) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetProvisionedCodeVersions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetProvisionedFabricCodeVersionInfoListSender sends the GetProvisionedFabricCodeVersionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetProvisionedFabricCodeVersionInfoListResponder handles the response to the GetProvisionedFabricCodeVersionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListResponder(resp *http.Response) (result ListFabricCodeVersionInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetProvisionedFabricConfigVersionInfoList gets a list of information about fabric config versions that are +// provisioned in the cluster. The parameter ConfigVersion can be used to optionally filter the output to only that +// particular version. +// Parameters: +// configVersion - the config version of Service Fabric. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoList(ctx context.Context, configVersion string, timeout *int64) (result ListFabricConfigVersionInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetProvisionedFabricConfigVersionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", err.Error()) + } + + req, err := client.GetProvisionedFabricConfigVersionInfoListPreparer(ctx, configVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetProvisionedFabricConfigVersionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetProvisionedFabricConfigVersionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetProvisionedFabricConfigVersionInfoListPreparer prepares the GetProvisionedFabricConfigVersionInfoList request. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListPreparer(ctx context.Context, configVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(configVersion) > 0 { + queryParameters["ConfigVersion"] = autorest.Encode("query", configVersion) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetProvisionedConfigVersions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetProvisionedFabricConfigVersionInfoListSender sends the GetProvisionedFabricConfigVersionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetProvisionedFabricConfigVersionInfoListResponder handles the response to the GetProvisionedFabricConfigVersionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListResponder(resp *http.Response) (result ListFabricConfigVersionInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetQuorumLossProgress gets the progress of a quorum loss operation started with StartQuorumLoss, using the provided +// OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetQuorumLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionQuorumLossProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetQuorumLossProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetQuorumLossProgress", err.Error()) + } + + req, err := client.GetQuorumLossProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetQuorumLossProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", resp, "Failure sending request") + return + } + + result, err = client.GetQuorumLossProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", resp, "Failure responding to request") + } + + return +} + +// GetQuorumLossProgressPreparer prepares the GetQuorumLossProgress request. +func (client BaseClient) GetQuorumLossProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetQuorumLossProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetQuorumLossProgressSender sends the GetQuorumLossProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetQuorumLossProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetQuorumLossProgressResponder handles the response to the GetQuorumLossProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetQuorumLossProgressResponder(resp *http.Response) (result PartitionQuorumLossProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetRepairTaskList this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// taskIDFilter - the repair task ID prefix to be matched. +// stateFilter - a bitwise-OR of the following values, specifying which task states should be included in the +// result list. +// +// - 1 - Created +// - 2 - Claimed +// - 4 - Preparing +// - 8 - Approved +// - 16 - Executing +// - 32 - Restoring +// - 64 - Completed +// executorFilter - the name of the repair executor whose claimed tasks should be included in the list. +func (client BaseClient) GetRepairTaskList(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (result ListRepairTask, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetRepairTaskList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetRepairTaskListPreparer(ctx, taskIDFilter, stateFilter, executorFilter) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", nil, "Failure preparing request") + return + } + + resp, err := client.GetRepairTaskListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", resp, "Failure sending request") + return + } + + result, err = client.GetRepairTaskListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", resp, "Failure responding to request") + } + + return +} + +// GetRepairTaskListPreparer prepares the GetRepairTaskList request. +func (client BaseClient) GetRepairTaskListPreparer(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(taskIDFilter) > 0 { + queryParameters["TaskIdFilter"] = autorest.Encode("query", taskIDFilter) + } + if stateFilter != nil { + queryParameters["StateFilter"] = autorest.Encode("query", *stateFilter) + } + if len(executorFilter) > 0 { + queryParameters["ExecutorFilter"] = autorest.Encode("query", executorFilter) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetRepairTaskList"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetRepairTaskListSender sends the GetRepairTaskList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetRepairTaskListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetRepairTaskListResponder handles the response to the GetRepairTaskList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetRepairTaskListResponder(resp *http.Response) (result ListRepairTask, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplica gets the information about the specified replica of a given service of an application. The information +// includes the runtime properties of the replica instance. +// Parameters: +// applicationResourceName - service Fabric application resource name. +// serviceResourceName - service Fabric service resource name. +// replicaName - service Fabric replica name. +func (client BaseClient) GetReplica(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (result ServiceResourceReplicaDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplica") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetReplicaPreparer(ctx, applicationResourceName, serviceResourceName, replicaName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplica", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplica", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplica", resp, "Failure responding to request") + } + + return +} + +// GetReplicaPreparer prepares the GetReplica request. +func (client BaseClient) GetReplicaPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "replicaName": replicaName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas/{replicaName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaSender sends the GetReplica request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaResponder handles the response to the GetReplica request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaResponder(resp *http.Response) (result ServiceResourceReplicaDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaHealth gets the health of a Service Fabric replica. +// Use EventsHealthStateFilter to filter the collection of health events reported on the replica based on the health +// state. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (result ReplicaHealthModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaHealth", err.Error()) + } + + req, err := client.GetReplicaHealthPreparer(ctx, partitionID, replicaID, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", resp, "Failure responding to request") + } + + return +} + +// GetReplicaHealthPreparer prepares the GetReplicaHealth request. +func (client BaseClient) GetReplicaHealthPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaHealthSender sends the GetReplicaHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaHealthResponder handles the response to the GetReplicaHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaHealthResponder(resp *http.Response) (result ReplicaHealthModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaHealthUsingPolicy gets the health of a Service Fabric stateful service replica or stateless service +// instance. +// Use EventsHealthStateFilter to filter the collection of health events reported on the cluster based on the health +// state. +// Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only +// uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while +// evaluating the health of the replica. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result ReplicaHealthModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", err.Error()) + } + + req, err := client.GetReplicaHealthUsingPolicyPreparer(ctx, partitionID, replicaID, eventsHealthStateFilter, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetReplicaHealthUsingPolicyPreparer prepares the GetReplicaHealthUsingPolicy request. +func (client BaseClient) GetReplicaHealthUsingPolicyPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaHealthUsingPolicySender sends the GetReplicaHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaHealthUsingPolicyResponder handles the response to the GetReplicaHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaHealthUsingPolicyResponder(resp *http.Response) (result ReplicaHealthModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaInfo the response includes the ID, role, status, health, node name, uptime, and other details about the +// replica. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaInfo(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (result ReplicaInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaInfo", err.Error()) + } + + req, err := client.GetReplicaInfoPreparer(ctx, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", resp, "Failure responding to request") + } + + return +} + +// GetReplicaInfoPreparer prepares the GetReplicaInfo request. +func (client BaseClient) GetReplicaInfoPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaInfoSender sends the GetReplicaInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaInfoResponder handles the response to the GetReplicaInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaInfoResponder(resp *http.Response) (result ReplicaInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaInfoList the GetReplicas endpoint returns information about the replicas of the specified partition. The +// response includes the ID, role, status, health, node name, uptime, and other details about the replica. +// Parameters: +// partitionID - the identity of the partition. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaInfoList(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (result PagedReplicaInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaInfoList", err.Error()) + } + + req, err := client.GetReplicaInfoListPreparer(ctx, partitionID, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", resp, "Failure responding to request") + } + + return +} + +// GetReplicaInfoListPreparer prepares the GetReplicaInfoList request. +func (client BaseClient) GetReplicaInfoListPreparer(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaInfoListSender sends the GetReplicaInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaInfoListResponder handles the response to the GetReplicaInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaInfoListResponder(resp *http.Response) (result PagedReplicaInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicas gets the information about all replicas of a given service of an application. The information includes +// the runtime properties of the replica instance. +// Parameters: +// applicationResourceName - service Fabric application resource name. +// serviceResourceName - service Fabric service resource name. +func (client BaseClient) GetReplicas(ctx context.Context, applicationResourceName string, serviceResourceName string) (result PagedServiceResourceReplicaDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicas") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetReplicasPreparer(ctx, applicationResourceName, serviceResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicas", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicasSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicas", resp, "Failure sending request") + return + } + + result, err = client.GetReplicasResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicas", resp, "Failure responding to request") + } + + return +} + +// GetReplicasPreparer prepares the GetReplicas request. +func (client BaseClient) GetReplicasPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/replicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicasSender sends the GetReplicas request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicasSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicasResponder handles the response to the GetReplicas request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicasResponder(resp *http.Response) (result PagedServiceResourceReplicaDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetService gets the description of the service resource. +// Parameters: +// applicationResourceName - service Fabric application resource name. +// serviceResourceName - service Fabric service resource name. +func (client BaseClient) GetService(ctx context.Context, applicationResourceName string, serviceResourceName string) (result ServiceResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetService") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetServicePreparer(ctx, applicationResourceName, serviceResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetService", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetService", resp, "Failure sending request") + return + } + + result, err = client.GetServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetService", resp, "Failure responding to request") + } + + return +} + +// GetServicePreparer prepares the GetService request. +func (client BaseClient) GetServicePreparer(ctx context.Context, applicationResourceName string, serviceResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceSender sends the GetService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceResponder handles the response to the GetService request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceResponder(resp *http.Response) (result ServiceResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceBackupConfigurationInfo gets the Service Fabric backup configuration information for the service and the +// partitions under this service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceBackupConfigurationInfo(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupConfigurationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetServiceBackupConfigurationInfoPreparer(ctx, serviceID, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceBackupConfigurationInfoPreparer prepares the GetServiceBackupConfigurationInfo request. +func (client BaseClient) GetServiceBackupConfigurationInfoPreparer(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceBackupConfigurationInfoSender sends the GetServiceBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceBackupConfigurationInfoResponder handles the response to the GetServiceBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceBackupConfigurationInfoResponder(resp *http.Response) (result PagedBackupConfigurationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceBackupList returns a list of backups available for every partition in this Service Fabric service. The +// server enumerates all the backups available in the backup store configured in the backup policy. It also allows +// filtering of the result based on start and end datetime or just fetching the latest available backup for every +// partition. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetServiceBackupList(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceBackupList", err.Error()) + } + + req, err := client.GetServiceBackupListPreparer(ctx, serviceID, timeout, latest, startDateTimeFilter, endDateTimeFilter, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", resp, "Failure responding to request") + } + + return +} + +// GetServiceBackupListPreparer prepares the GetServiceBackupList request. +func (client BaseClient) GetServiceBackupListPreparer(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceBackupListSender sends the GetServiceBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceBackupListResponder handles the response to the GetServiceBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceDescription gets the description of an existing Service Fabric service. A service must be created before +// its description can be obtained. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceDescription(ctx context.Context, serviceID string, timeout *int64) (result ServiceDescriptionModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceDescription") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceDescription", err.Error()) + } + + req, err := client.GetServiceDescriptionPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceDescriptionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", resp, "Failure sending request") + return + } + + result, err = client.GetServiceDescriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", resp, "Failure responding to request") + } + + return +} + +// GetServiceDescriptionPreparer prepares the GetServiceDescription request. +func (client BaseClient) GetServiceDescriptionPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetDescription", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceDescriptionSender sends the GetServiceDescription request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceDescriptionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceDescriptionResponder handles the response to the GetServiceDescription request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceDescriptionResponder(resp *http.Response) (result ServiceDescriptionModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceEventList the response is list of ServiceEvent objects. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetServiceEventList(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListServiceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceEventList", err.Error()) + } + + req, err := client.GetServiceEventListPreparer(ctx, serviceID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", resp, "Failure responding to request") + } + + return +} + +// GetServiceEventListPreparer prepares the GetServiceEventList request. +func (client BaseClient) GetServiceEventListPreparer(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Services/{serviceId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceEventListSender sends the GetServiceEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceEventListResponder handles the response to the GetServiceEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceEventListResponder(resp *http.Response) (result ListServiceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceHealth gets the health information of the specified service. +// Use EventsHealthStateFilter to filter the collection of health events reported on the service based on the health +// state. +// Use PartitionsHealthStateFilter to filter the collection of partitions returned. +// If you specify a service that does not exist in the health store, this request returns an error. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// partitionsHealthStateFilter - allows filtering of the partitions health state objects returned in the result +// of service health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only partitions that match the filter are returned. All partitions are used to evaluate the aggregated +// health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these value +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of +// partitions with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceHealth(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result ServiceHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceHealth", err.Error()) + } + + req, err := client.GetServiceHealthPreparer(ctx, serviceID, eventsHealthStateFilter, partitionsHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", resp, "Failure sending request") + return + } + + result, err = client.GetServiceHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", resp, "Failure responding to request") + } + + return +} + +// GetServiceHealthPreparer prepares the GetServiceHealth request. +func (client BaseClient) GetServiceHealthPreparer(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if partitionsHealthStateFilter != nil { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", *partitionsHealthStateFilter) + } else { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceHealthSender sends the GetServiceHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceHealthResponder handles the response to the GetServiceHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceHealthResponder(resp *http.Response) (result ServiceHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceHealthUsingPolicy gets the health information of the specified service. +// If the application health policy is specified, the health evaluation uses it to get the aggregated health state. +// If the policy is not specified, the health evaluation uses the application health policy defined in the application +// manifest, or the default health policy, if no policy is defined in the manifest. +// Use EventsHealthStateFilter to filter the collection of health events reported on the service based on the health +// state. +// Use PartitionsHealthStateFilter to filter the collection of partitions returned. +// If you specify a service that does not exist in the health store, this request returns an error. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// partitionsHealthStateFilter - allows filtering of the partitions health state objects returned in the result +// of service health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only partitions that match the filter are returned. All partitions are used to evaluate the aggregated +// health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these value +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of +// partitions with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceHealthUsingPolicy(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result ServiceHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceHealthUsingPolicy", err.Error()) + } + + req, err := client.GetServiceHealthUsingPolicyPreparer(ctx, serviceID, eventsHealthStateFilter, partitionsHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetServiceHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetServiceHealthUsingPolicyPreparer prepares the GetServiceHealthUsingPolicy request. +func (client BaseClient) GetServiceHealthUsingPolicyPreparer(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if partitionsHealthStateFilter != nil { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", *partitionsHealthStateFilter) + } else { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceHealthUsingPolicySender sends the GetServiceHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceHealthUsingPolicyResponder handles the response to the GetServiceHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceHealthUsingPolicyResponder(resp *http.Response) (result ServiceHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceInfo returns the information about the specified service belonging to the specified Service Fabric +// application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceInfo(ctx context.Context, applicationID string, serviceID string, timeout *int64) (result ServiceInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceInfo", err.Error()) + } + + req, err := client.GetServiceInfoPreparer(ctx, applicationID, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceInfoPreparer prepares the GetServiceInfo request. +func (client BaseClient) GetServiceInfoPreparer(ctx context.Context, applicationID string, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/{serviceId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceInfoSender sends the GetServiceInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceInfoResponder handles the response to the GetServiceInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceInfoResponder(resp *http.Response) (result ServiceInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceInfoList returns the information about all services belonging to the application specified by the +// application ID. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceTypeName - the service type name used to filter the services to query for. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceInfoList(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (result PagedServiceInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceInfoList", err.Error()) + } + + req, err := client.GetServiceInfoListPreparer(ctx, applicationID, serviceTypeName, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", resp, "Failure responding to request") + } + + return +} + +// GetServiceInfoListPreparer prepares the GetServiceInfoList request. +func (client BaseClient) GetServiceInfoListPreparer(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceTypeName) > 0 { + queryParameters["ServiceTypeName"] = autorest.Encode("query", serviceTypeName) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceInfoListSender sends the GetServiceInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceInfoListResponder handles the response to the GetServiceInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceInfoListResponder(resp *http.Response) (result PagedServiceInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceManifest gets the manifest describing a service type. The response contains the service manifest XML as a +// string. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (result ServiceTypeManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceManifest", err.Error()) + } + + req, err := client.GetServiceManifestPreparer(ctx, applicationTypeName, applicationTypeVersion, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", resp, "Failure sending request") + return + } + + result, err = client.GetServiceManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", resp, "Failure responding to request") + } + + return +} + +// GetServiceManifestPreparer prepares the GetServiceManifest request. +func (client BaseClient) GetServiceManifestPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceManifest", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceManifestSender sends the GetServiceManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceManifestResponder handles the response to the GetServiceManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceManifestResponder(resp *http.Response) (result ServiceTypeManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceNameInfo gets name of the service for the specified partition. A 404 error is returned if the partition ID +// does not exist in the cluster. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceNameInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result ServiceNameInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceNameInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceNameInfo", err.Error()) + } + + req, err := client.GetServiceNameInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceNameInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceNameInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceNameInfoPreparer prepares the GetServiceNameInfo request. +func (client BaseClient) GetServiceNameInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetServiceName", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceNameInfoSender sends the GetServiceNameInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceNameInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceNameInfoResponder handles the response to the GetServiceNameInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceNameInfoResponder(resp *http.Response) (result ServiceNameInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServices the operation returns the service descriptions of all the services in the application resource. +// Parameters: +// applicationResourceName - service Fabric application resource name. +func (client BaseClient) GetServices(ctx context.Context, applicationResourceName string) (result PagedServiceResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServices") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetServicesPreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServices", nil, "Failure preparing request") + return + } + + resp, err := client.GetServicesSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServices", resp, "Failure sending request") + return + } + + result, err = client.GetServicesResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServices", resp, "Failure responding to request") + } + + return +} + +// GetServicesPreparer prepares the GetServices request. +func (client BaseClient) GetServicesPreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServicesSender sends the GetServices request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServicesSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServicesResponder handles the response to the GetServices request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServicesResponder(resp *http.Response) (result PagedServiceResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServicesEventList the response is list of ServiceEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetServicesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListServiceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServicesEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServicesEventList", err.Error()) + } + + req, err := client.GetServicesEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServicesEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", resp, "Failure sending request") + return + } + + result, err = client.GetServicesEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", resp, "Failure responding to request") + } + + return +} + +// GetServicesEventListPreparer prepares the GetServicesEventList request. +func (client BaseClient) GetServicesEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Services/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServicesEventListSender sends the GetServicesEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServicesEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServicesEventListResponder handles the response to the GetServicesEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServicesEventListResponder(resp *http.Response) (result ListServiceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceTypeInfoByName gets the information about a specific service type that is supported by a provisioned +// application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 status is +// returned. A 204 response is returned if the specified service type is not found in the cluster. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// serviceTypeName - specifies the name of a Service Fabric service type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceTypeInfoByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (result ServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceTypeInfoByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceTypeInfoByName", err.Error()) + } + + req, err := client.GetServiceTypeInfoByNamePreparer(ctx, applicationTypeName, applicationTypeVersion, serviceTypeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceTypeInfoByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", resp, "Failure sending request") + return + } + + result, err = client.GetServiceTypeInfoByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", resp, "Failure responding to request") + } + + return +} + +// GetServiceTypeInfoByNamePreparer prepares the GetServiceTypeInfoByName request. +func (client BaseClient) GetServiceTypeInfoByNamePreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "serviceTypeName": serviceTypeName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes/{serviceTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceTypeInfoByNameSender sends the GetServiceTypeInfoByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceTypeInfoByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceTypeInfoByNameResponder handles the response to the GetServiceTypeInfoByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceTypeInfoByNameResponder(resp *http.Response) (result ServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceTypeInfoList gets the list containing the information about service types that are supported by a +// provisioned application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 +// status is returned. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceTypeInfoList(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result ListServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceTypeInfoList", err.Error()) + } + + req, err := client.GetServiceTypeInfoListPreparer(ctx, applicationTypeName, applicationTypeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetServiceTypeInfoListPreparer prepares the GetServiceTypeInfoList request. +func (client BaseClient) GetServiceTypeInfoListPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceTypeInfoListSender sends the GetServiceTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceTypeInfoListResponder handles the response to the GetServiceTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceTypeInfoListResponder(resp *http.Response) (result ListServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetSubNameInfoList enumerates all the Service Fabric names under a given name. If the subnames do not fit in a page, +// one page of results is returned as well as a continuation token, which can be used to get the next page. Querying a +// name that doesn't exist will fail. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// recursive - allows specifying that the search performed should be recursive. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetSubNameInfoList(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (result PagedSubNameInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetSubNameInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetSubNameInfoList", err.Error()) + } + + req, err := client.GetSubNameInfoListPreparer(ctx, nameID, recursive, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetSubNameInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetSubNameInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", resp, "Failure responding to request") + } + + return +} + +// GetSubNameInfoListPreparer prepares the GetSubNameInfoList request. +func (client BaseClient) GetSubNameInfoListPreparer(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if recursive != nil { + queryParameters["Recursive"] = autorest.Encode("query", *recursive) + } else { + queryParameters["Recursive"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetSubNames", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSubNameInfoListSender sends the GetSubNameInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetSubNameInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetSubNameInfoListResponder handles the response to the GetSubNameInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetSubNameInfoListResponder(resp *http.Response) (result PagedSubNameInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetUpgradeOrchestrationServiceState get the service state of Service Fabric Upgrade Orchestration Service. This API +// is internally used for support purposes. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetUpgradeOrchestrationServiceState(ctx context.Context, timeout *int64) (result UpgradeOrchestrationServiceState, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetUpgradeOrchestrationServiceState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", err.Error()) + } + + req, err := client.GetUpgradeOrchestrationServiceStatePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", nil, "Failure preparing request") + return + } + + resp, err := client.GetUpgradeOrchestrationServiceStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", resp, "Failure sending request") + return + } + + result, err = client.GetUpgradeOrchestrationServiceStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", resp, "Failure responding to request") + } + + return +} + +// GetUpgradeOrchestrationServiceStatePreparer prepares the GetUpgradeOrchestrationServiceState request. +func (client BaseClient) GetUpgradeOrchestrationServiceStatePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetUpgradeOrchestrationServiceState"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetUpgradeOrchestrationServiceStateSender sends the GetUpgradeOrchestrationServiceState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetUpgradeOrchestrationServiceStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetUpgradeOrchestrationServiceStateResponder handles the response to the GetUpgradeOrchestrationServiceState request. The method always +// closes the http.Response Body. +func (client BaseClient) GetUpgradeOrchestrationServiceStateResponder(resp *http.Response) (result UpgradeOrchestrationServiceState, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetVolumeResource gets the information about the volume resource with a given name. This information includes the +// volume description and other runtime information. +// Parameters: +// volumeResourceName - service Fabric volume resource name. +func (client BaseClient) GetVolumeResource(ctx context.Context, volumeResourceName string) (result VolumeResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetVolumeResource") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetVolumeResourcePreparer(ctx, volumeResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetVolumeResource", nil, "Failure preparing request") + return + } + + resp, err := client.GetVolumeResourceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetVolumeResource", resp, "Failure sending request") + return + } + + result, err = client.GetVolumeResourceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetVolumeResource", resp, "Failure responding to request") + } + + return +} + +// GetVolumeResourcePreparer prepares the GetVolumeResource request. +func (client BaseClient) GetVolumeResourcePreparer(ctx context.Context, volumeResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.3-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetVolumeResourceSender sends the GetVolumeResource request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetVolumeResourceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetVolumeResourceResponder handles the response to the GetVolumeResource request. The method always +// closes the http.Response Body. +func (client BaseClient) GetVolumeResourceResponder(resp *http.Response) (result VolumeResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeContainerAPI invoke container API on a container deployed on a Service Fabric node for the given code package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// codePackageInstanceID - ID that uniquely identifies a code package instance deployed on a service fabric +// node. +// containerAPIRequestBody - parameters for making container API call +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeContainerAPI(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody ContainerAPIRequestBody, timeout *int64) (result ContainerAPIResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeContainerAPI") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: containerAPIRequestBody, + Constraints: []validation.Constraint{{Target: "containerAPIRequestBody.URIPath", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeContainerAPI", err.Error()) + } + + req, err := client.InvokeContainerAPIPreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, codePackageInstanceID, containerAPIRequestBody, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeContainerAPISender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", resp, "Failure sending request") + return + } + + result, err = client.InvokeContainerAPIResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", resp, "Failure responding to request") + } + + return +} + +// InvokeContainerAPIPreparer prepares the InvokeContainerAPI request. +func (client BaseClient) InvokeContainerAPIPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody ContainerAPIRequestBody, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "CodePackageInstanceId": autorest.Encode("query", codePackageInstanceID), + "CodePackageName": autorest.Encode("query", codePackageName), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi", pathParameters), + autorest.WithJSON(containerAPIRequestBody), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeContainerAPISender sends the InvokeContainerAPI request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeContainerAPISender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeContainerAPIResponder handles the response to the InvokeContainerAPI request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeContainerAPIResponder(resp *http.Response) (result ContainerAPIResponse, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeInfrastructureCommand for clusters that have one or more instances of the Infrastructure Service configured, +// this API provides a way to send infrastructure-specific commands to a particular +// instance of the Infrastructure Service. +// +// Available commands and their corresponding response formats vary depending upon +// the infrastructure on which the cluster is running. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// command - the text of the command to be invoked. The content of the command is infrastructure-specific. +// serviceID - the identity of the infrastructure service. This is the full name of the infrastructure service +// without the 'fabric:' URI scheme. This parameter required only for the cluster that has more than one +// instance of infrastructure service running. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeInfrastructureCommand(ctx context.Context, command string, serviceID string, timeout *int64) (result String, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeInfrastructureCommand") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeInfrastructureCommand", err.Error()) + } + + req, err := client.InvokeInfrastructureCommandPreparer(ctx, command, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeInfrastructureCommandSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", resp, "Failure sending request") + return + } + + result, err = client.InvokeInfrastructureCommandResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", resp, "Failure responding to request") + } + + return +} + +// InvokeInfrastructureCommandPreparer prepares the InvokeInfrastructureCommand request. +func (client BaseClient) InvokeInfrastructureCommandPreparer(ctx context.Context, command string, serviceID string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Command": autorest.Encode("query", command), + } + if len(serviceID) > 0 { + queryParameters["ServiceId"] = autorest.Encode("query", serviceID) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/InvokeInfrastructureCommand"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeInfrastructureCommandSender sends the InvokeInfrastructureCommand request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeInfrastructureCommandSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeInfrastructureCommandResponder handles the response to the InvokeInfrastructureCommand request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeInfrastructureCommandResponder(resp *http.Response) (result String, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeInfrastructureQuery for clusters that have one or more instances of the Infrastructure Service configured, +// this API provides a way to send infrastructure-specific queries to a particular +// instance of the Infrastructure Service. +// +// Available commands and their corresponding response formats vary depending upon +// the infrastructure on which the cluster is running. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// command - the text of the command to be invoked. The content of the command is infrastructure-specific. +// serviceID - the identity of the infrastructure service. This is the full name of the infrastructure service +// without the 'fabric:' URI scheme. This parameter required only for the cluster that has more than one +// instance of infrastructure service running. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeInfrastructureQuery(ctx context.Context, command string, serviceID string, timeout *int64) (result String, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeInfrastructureQuery") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeInfrastructureQuery", err.Error()) + } + + req, err := client.InvokeInfrastructureQueryPreparer(ctx, command, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeInfrastructureQuerySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", resp, "Failure sending request") + return + } + + result, err = client.InvokeInfrastructureQueryResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", resp, "Failure responding to request") + } + + return +} + +// InvokeInfrastructureQueryPreparer prepares the InvokeInfrastructureQuery request. +func (client BaseClient) InvokeInfrastructureQueryPreparer(ctx context.Context, command string, serviceID string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Command": autorest.Encode("query", command), + } + if len(serviceID) > 0 { + queryParameters["ServiceId"] = autorest.Encode("query", serviceID) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/InvokeInfrastructureQuery"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeInfrastructureQuerySender sends the InvokeInfrastructureQuery request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeInfrastructureQuerySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeInfrastructureQueryResponder handles the response to the InvokeInfrastructureQuery request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeInfrastructureQueryResponder(resp *http.Response) (result String, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// PostChaosSchedule chaos will automatically schedule runs based on the Chaos Schedule. +// The Chaos Schedule will be updated if the provided version matches the version on the server. +// When updating the Chaos Schedule, the version on the server is incremented by 1. +// The version on the server will wrap back to 0 after reaching a large number. +// If Chaos is running when this call is made, the call will fail. +// Parameters: +// chaosSchedule - describes the schedule used by Chaos. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) PostChaosSchedule(ctx context.Context, chaosSchedule ChaosScheduleDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.PostChaosSchedule") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: chaosSchedule, + Constraints: []validation.Constraint{{Target: "chaosSchedule.Version", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosSchedule.Version", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "PostChaosSchedule", err.Error()) + } + + req, err := client.PostChaosSchedulePreparer(ctx, chaosSchedule, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", nil, "Failure preparing request") + return + } + + resp, err := client.PostChaosScheduleSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", resp, "Failure sending request") + return + } + + result, err = client.PostChaosScheduleResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", resp, "Failure responding to request") + } + + return +} + +// PostChaosSchedulePreparer prepares the PostChaosSchedule request. +func (client BaseClient) PostChaosSchedulePreparer(ctx context.Context, chaosSchedule ChaosScheduleDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Schedule"), + autorest.WithJSON(chaosSchedule), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// PostChaosScheduleSender sends the PostChaosSchedule request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) PostChaosScheduleSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// PostChaosScheduleResponder handles the response to the PostChaosSchedule request. The method always +// closes the http.Response Body. +func (client BaseClient) PostChaosScheduleResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ProvisionApplicationType provisions a Service Fabric application type with the cluster. The provision is required +// before any new applications can be instantiated. +// The provision operation can be performed either on the application package specified by the +// relativePathInImageStore, or by using the URI of the external '.sfpkg'. +// Parameters: +// provisionApplicationTypeDescriptionBaseRequiredBodyParam - the base type of provision application type +// description which supports either image store-based provision or external store-based provision. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ProvisionApplicationType(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ProvisionApplicationType") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: provisionApplicationTypeDescriptionBaseRequiredBodyParam, + Constraints: []validation.Constraint{{Target: "provisionApplicationTypeDescriptionBaseRequiredBodyParam.Async", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ProvisionApplicationType", err.Error()) + } + + req, err := client.ProvisionApplicationTypePreparer(ctx, provisionApplicationTypeDescriptionBaseRequiredBodyParam, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", nil, "Failure preparing request") + return + } + + resp, err := client.ProvisionApplicationTypeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", resp, "Failure sending request") + return + } + + result, err = client.ProvisionApplicationTypeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", resp, "Failure responding to request") + } + + return +} + +// ProvisionApplicationTypePreparer prepares the ProvisionApplicationType request. +func (client BaseClient) ProvisionApplicationTypePreparer(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ApplicationTypes/$/Provision"), + autorest.WithJSON(provisionApplicationTypeDescriptionBaseRequiredBodyParam), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ProvisionApplicationTypeSender sends the ProvisionApplicationType request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ProvisionApplicationTypeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ProvisionApplicationTypeResponder handles the response to the ProvisionApplicationType request. The method always +// closes the http.Response Body. +func (client BaseClient) ProvisionApplicationTypeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ProvisionCluster validate and provision the code or configuration packages of a Service Fabric cluster. +// Parameters: +// provisionFabricDescription - describes the parameters for provisioning a cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ProvisionCluster(ctx context.Context, provisionFabricDescription ProvisionFabricDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ProvisionCluster") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ProvisionCluster", err.Error()) + } + + req, err := client.ProvisionClusterPreparer(ctx, provisionFabricDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", nil, "Failure preparing request") + return + } + + resp, err := client.ProvisionClusterSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", resp, "Failure sending request") + return + } + + result, err = client.ProvisionClusterResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", resp, "Failure responding to request") + } + + return +} + +// ProvisionClusterPreparer prepares the ProvisionCluster request. +func (client BaseClient) ProvisionClusterPreparer(ctx context.Context, provisionFabricDescription ProvisionFabricDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Provision"), + autorest.WithJSON(provisionFabricDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ProvisionClusterSender sends the ProvisionCluster request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ProvisionClusterSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ProvisionClusterResponder handles the response to the ProvisionCluster request. The method always +// closes the http.Response Body. +func (client BaseClient) ProvisionClusterResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// PutProperty creates or updates the specified Service Fabric property under a given name. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyDescription - describes the Service Fabric property to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) PutProperty(ctx context.Context, nameID string, propertyDescription PropertyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.PutProperty") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: propertyDescription, + Constraints: []validation.Constraint{{Target: "propertyDescription.PropertyName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "propertyDescription.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "PutProperty", err.Error()) + } + + req, err := client.PutPropertyPreparer(ctx, nameID, propertyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", nil, "Failure preparing request") + return + } + + resp, err := client.PutPropertySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", resp, "Failure sending request") + return + } + + result, err = client.PutPropertyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", resp, "Failure responding to request") + } + + return +} + +// PutPropertyPreparer prepares the PutProperty request. +func (client BaseClient) PutPropertyPreparer(ctx context.Context, nameID string, propertyDescription PropertyDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithJSON(propertyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// PutPropertySender sends the PutProperty request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) PutPropertySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// PutPropertyResponder handles the response to the PutProperty request. The method always +// closes the http.Response Body. +func (client BaseClient) PutPropertyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverAllPartitions this operation should only be performed if it is known that the replicas that are down cannot +// be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverAllPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverAllPartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverAllPartitions", err.Error()) + } + + req, err := client.RecoverAllPartitionsPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverAllPartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverAllPartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverAllPartitionsPreparer prepares the RecoverAllPartitions request. +func (client BaseClient) RecoverAllPartitionsPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RecoverAllPartitions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverAllPartitionsSender sends the RecoverAllPartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverAllPartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverAllPartitionsResponder handles the response to the RecoverAllPartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverAllPartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverPartition this operation should only be performed if it is known that the replicas that are down cannot be +// recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverPartition(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverPartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverPartition", err.Error()) + } + + req, err := client.RecoverPartitionPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverPartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", resp, "Failure sending request") + return + } + + result, err = client.RecoverPartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", resp, "Failure responding to request") + } + + return +} + +// RecoverPartitionPreparer prepares the RecoverPartition request. +func (client BaseClient) RecoverPartitionPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Recover", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverPartitionSender sends the RecoverPartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverPartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverPartitionResponder handles the response to the RecoverPartition request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverPartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverServicePartitions indicates to the Service Fabric cluster that it should attempt to recover the specified +// service that is currently stuck in quorum loss. This operation should only be performed if it is known that the +// replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverServicePartitions(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverServicePartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverServicePartitions", err.Error()) + } + + req, err := client.RecoverServicePartitionsPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverServicePartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverServicePartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverServicePartitionsPreparer prepares the RecoverServicePartitions request. +func (client BaseClient) RecoverServicePartitionsPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/$/{serviceId}/$/GetPartitions/$/Recover", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverServicePartitionsSender sends the RecoverServicePartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverServicePartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverServicePartitionsResponder handles the response to the RecoverServicePartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverServicePartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverSystemPartitions indicates to the Service Fabric cluster that it should attempt to recover the system +// services that are currently stuck in quorum loss. This operation should only be performed if it is known that the +// replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverSystemPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverSystemPartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverSystemPartitions", err.Error()) + } + + req, err := client.RecoverSystemPartitionsPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverSystemPartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverSystemPartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverSystemPartitionsPreparer prepares the RecoverSystemPartitions request. +func (client BaseClient) RecoverSystemPartitionsPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RecoverSystemPartitions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverSystemPartitionsSender sends the RecoverSystemPartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverSystemPartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverSystemPartitionsResponder handles the response to the RecoverSystemPartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverSystemPartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveComposeDeployment deletes an existing Service Fabric compose deployment. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveComposeDeployment(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveComposeDeployment") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveComposeDeployment", err.Error()) + } + + req, err := client.RemoveComposeDeploymentPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveComposeDeploymentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", resp, "Failure sending request") + return + } + + result, err = client.RemoveComposeDeploymentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", resp, "Failure responding to request") + } + + return +} + +// RemoveComposeDeploymentPreparer prepares the RemoveComposeDeployment request. +func (client BaseClient) RemoveComposeDeploymentPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveComposeDeploymentSender sends the RemoveComposeDeployment request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveComposeDeploymentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveComposeDeploymentResponder handles the response to the RemoveComposeDeployment request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveComposeDeploymentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveNodeState this implies that it is not possible to recover the persisted state of that node. This generally +// happens if a hard disk has been wiped clean, or if a hard disk crashes. The node has to be down for this operation +// to be successful. This operation lets Service Fabric know that the replicas on that node no longer exist, and that +// Service Fabric should stop waiting for those replicas to come back up. Do not run this cmdlet if the state on the +// node has not been removed and the node can come back up with its state intact. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveNodeState(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveNodeState") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveNodeState", err.Error()) + } + + req, err := client.RemoveNodeStatePreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveNodeStateSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", resp, "Failure sending request") + return + } + + result, err = client.RemoveNodeStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", resp, "Failure responding to request") + } + + return +} + +// RemoveNodeStatePreparer prepares the RemoveNodeState request. +func (client BaseClient) RemoveNodeStatePreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/RemoveNodeState", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveNodeStateSender sends the RemoveNodeState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveNodeStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveNodeStateResponder handles the response to the RemoveNodeState request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveNodeStateResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveReplica this API simulates a Service Fabric replica failure by removing a replica from a Service Fabric +// cluster. The removal closes the replica, transitions the replica to the role None, and then removes all of the state +// information of the replica from the cluster. This API tests the replica state removal path, and simulates the report +// fault permanent path through client APIs. Warning - There are no safety checks performed when this API is used. +// Incorrect use of this API can lead to data loss for stateful services. In addition, the forceRemove flag impacts all +// other replicas hosted in the same process. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveReplica") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveReplica", err.Error()) + } + + req, err := client.RemoveReplicaPreparer(ctx, nodeName, partitionID, replicaID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveReplicaSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", resp, "Failure sending request") + return + } + + result, err = client.RemoveReplicaResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", resp, "Failure responding to request") + } + + return +} + +// RemoveReplicaPreparer prepares the RemoveReplica request. +func (client BaseClient) RemoveReplicaPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveReplicaSender sends the RemoveReplica request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveReplicaSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveReplicaResponder handles the response to the RemoveReplica request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveReplicaResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportApplicationHealth reports health state of the specified Service Fabric application. The report must contain +// the information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Application, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get application health and check that the report appears +// in the HealthEvents section. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportApplicationHealth(ctx context.Context, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportApplicationHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportApplicationHealth", err.Error()) + } + + req, err := client.ReportApplicationHealthPreparer(ctx, applicationID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportApplicationHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// ReportApplicationHealthPreparer prepares the ReportApplicationHealth request. +func (client BaseClient) ReportApplicationHealthPreparer(ctx context.Context, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportApplicationHealthSender sends the ReportApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportApplicationHealthResponder handles the response to the ReportApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportApplicationHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportClusterHealth sends a health report on a Service Fabric cluster. The report must contain the information about +// the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway node, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetClusterHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportClusterHealth(ctx context.Context, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportClusterHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportClusterHealth", err.Error()) + } + + req, err := client.ReportClusterHealthPreparer(ctx, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportClusterHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportClusterHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", resp, "Failure responding to request") + } + + return +} + +// ReportClusterHealthPreparer prepares the ReportClusterHealth request. +func (client BaseClient) ReportClusterHealthPreparer(ctx context.Context, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/ReportClusterHealth"), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportClusterHealthSender sends the ReportClusterHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportClusterHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportClusterHealthResponder handles the response to the ReportClusterHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportClusterHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportDeployedApplicationHealth reports health state of the application deployed on a Service Fabric node. The +// report must contain the information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get deployed application health and check that the report +// appears in the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportDeployedApplicationHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportDeployedApplicationHealth", err.Error()) + } + + req, err := client.ReportDeployedApplicationHealthPreparer(ctx, nodeName, applicationID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportDeployedApplicationHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportDeployedApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// ReportDeployedApplicationHealthPreparer prepares the ReportDeployedApplicationHealth request. +func (client BaseClient) ReportDeployedApplicationHealthPreparer(ctx context.Context, nodeName string, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportDeployedApplicationHealthSender sends the ReportDeployedApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportDeployedApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportDeployedApplicationHealthResponder handles the response to the ReportDeployedApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportDeployedApplicationHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportDeployedServicePackageHealth reports health state of the service package of the application deployed on a +// Service Fabric node. The report must contain the information about the source of the health report and property on +// which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get deployed service package health and check that the +// report appears in the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportDeployedServicePackageHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportDeployedServicePackageHealth", err.Error()) + } + + req, err := client.ReportDeployedServicePackageHealthPreparer(ctx, nodeName, applicationID, servicePackageName, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportDeployedServicePackageHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportDeployedServicePackageHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", resp, "Failure responding to request") + } + + return +} + +// ReportDeployedServicePackageHealthPreparer prepares the ReportDeployedServicePackageHealth request. +func (client BaseClient) ReportDeployedServicePackageHealthPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportDeployedServicePackageHealthSender sends the ReportDeployedServicePackageHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportDeployedServicePackageHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportDeployedServicePackageHealthResponder handles the response to the ReportDeployedServicePackageHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportDeployedServicePackageHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportNodeHealth reports health state of the specified Service Fabric node. The report must contain the information +// about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway node, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetNodeHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportNodeHealth(ctx context.Context, nodeName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportNodeHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportNodeHealth", err.Error()) + } + + req, err := client.ReportNodeHealthPreparer(ctx, nodeName, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportNodeHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportNodeHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", resp, "Failure responding to request") + } + + return +} + +// ReportNodeHealthPreparer prepares the ReportNodeHealth request. +func (client BaseClient) ReportNodeHealthPreparer(ctx context.Context, nodeName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportNodeHealthSender sends the ReportNodeHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportNodeHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportNodeHealthResponder handles the response to the ReportNodeHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportNodeHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportPartitionHealth reports health state of the specified Service Fabric partition. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Partition, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetPartitionHealth and check that the report appears +// in the HealthEvents section. +// Parameters: +// partitionID - the identity of the partition. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportPartitionHealth(ctx context.Context, partitionID uuid.UUID, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportPartitionHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportPartitionHealth", err.Error()) + } + + req, err := client.ReportPartitionHealthPreparer(ctx, partitionID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportPartitionHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportPartitionHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", resp, "Failure responding to request") + } + + return +} + +// ReportPartitionHealthPreparer prepares the ReportPartitionHealth request. +func (client BaseClient) ReportPartitionHealthPreparer(ctx context.Context, partitionID uuid.UUID, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportPartitionHealthSender sends the ReportPartitionHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportPartitionHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportPartitionHealthResponder handles the response to the ReportPartitionHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportPartitionHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportReplicaHealth reports health state of the specified Service Fabric replica. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Replica, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetReplicaHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// replicaHealthReportServiceKind - the kind of service replica (Stateless or Stateful) for which the health is +// being reported. Following are the possible values. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind ReplicaHealthReportServiceKind, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportReplicaHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportReplicaHealth", err.Error()) + } + + req, err := client.ReportReplicaHealthPreparer(ctx, partitionID, replicaID, replicaHealthReportServiceKind, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportReplicaHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportReplicaHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", resp, "Failure responding to request") + } + + return +} + +// ReportReplicaHealthPreparer prepares the ReportReplicaHealth request. +func (client BaseClient) ReportReplicaHealthPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind ReplicaHealthReportServiceKind, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ReplicaHealthReportServiceKind": autorest.Encode("query", replicaHealthReportServiceKind), + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportReplicaHealthSender sends the ReportReplicaHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportReplicaHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportReplicaHealthResponder handles the response to the ReportReplicaHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportReplicaHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportServiceHealth reports health state of the specified Service Fabric service. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetServiceHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportServiceHealth(ctx context.Context, serviceID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportServiceHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportServiceHealth", err.Error()) + } + + req, err := client.ReportServiceHealthPreparer(ctx, serviceID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportServiceHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportServiceHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", resp, "Failure responding to request") + } + + return +} + +// ReportServiceHealthPreparer prepares the ReportServiceHealth request. +func (client BaseClient) ReportServiceHealthPreparer(ctx context.Context, serviceID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportServiceHealthSender sends the ReportServiceHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportServiceHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportServiceHealthResponder handles the response to the ReportServiceHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportServiceHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResetPartitionLoad resets the current load of a Service Fabric partition to the default load for the service. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResetPartitionLoad(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResetPartitionLoad") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResetPartitionLoad", err.Error()) + } + + req, err := client.ResetPartitionLoadPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", nil, "Failure preparing request") + return + } + + resp, err := client.ResetPartitionLoadSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", resp, "Failure sending request") + return + } + + result, err = client.ResetPartitionLoadResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", resp, "Failure responding to request") + } + + return +} + +// ResetPartitionLoadPreparer prepares the ResetPartitionLoad request. +func (client BaseClient) ResetPartitionLoadPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ResetLoad", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResetPartitionLoadSender sends the ResetPartitionLoad request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResetPartitionLoadSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResetPartitionLoadResponder handles the response to the ResetPartitionLoad request. The method always +// closes the http.Response Body. +func (client BaseClient) ResetPartitionLoadResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResolveService resolve a Service Fabric service partition to get the endpoints of the service replicas. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionKeyType - key type for the partition. This parameter is required if the partition scheme for the +// service is Int64Range or Named. The possible values are following. +// - None (1) - Indicates that the PartitionKeyValue parameter is not specified. This is valid for the +// partitions with partitioning scheme as Singleton. This is the default value. The value is 1. +// - Int64Range (2) - Indicates that the PartitionKeyValue parameter is an int64 partition key. This is valid +// for the partitions with partitioning scheme as Int64Range. The value is 2. +// - Named (3) - Indicates that the PartitionKeyValue parameter is a name of the partition. This is valid for +// the partitions with partitioning scheme as Named. The value is 3. +// partitionKeyValue - partition key. This is required if the partition scheme for the service is Int64Range or +// Named. +// previousRspVersion - the value in the Version field of the response that was received previously. This is +// required if the user knows that the result that was gotten previously is stale. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResolveService(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (result ResolvedServicePartition, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResolveService") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResolveService", err.Error()) + } + + req, err := client.ResolveServicePreparer(ctx, serviceID, partitionKeyType, partitionKeyValue, previousRspVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", nil, "Failure preparing request") + return + } + + resp, err := client.ResolveServiceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", resp, "Failure sending request") + return + } + + result, err = client.ResolveServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", resp, "Failure responding to request") + } + + return +} + +// ResolveServicePreparer prepares the ResolveService request. +func (client BaseClient) ResolveServicePreparer(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if partitionKeyType != nil { + queryParameters["PartitionKeyType"] = autorest.Encode("query", *partitionKeyType) + } + if len(partitionKeyValue) > 0 { + queryParameters["PartitionKeyValue"] = partitionKeyValue + } + if len(previousRspVersion) > 0 { + queryParameters["PreviousRspVersion"] = previousRspVersion + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ResolvePartition", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResolveServiceSender sends the ResolveService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResolveServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResolveServiceResponder handles the response to the ResolveService request. The method always +// closes the http.Response Body. +func (client BaseClient) ResolveServiceResponder(resp *http.Response) (result ResolvedServicePartition, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// RestartDeployedCodePackage restarts a code package deployed on a Service Fabric node in a cluster. This aborts the +// code package process, which will restart all the user service replicas hosted in that process. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// restartDeployedCodePackageDescription - describes the deployed code package on Service Fabric node to +// restart. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartDeployedCodePackage(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription RestartDeployedCodePackageDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartDeployedCodePackage") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restartDeployedCodePackageDescription, + Constraints: []validation.Constraint{{Target: "restartDeployedCodePackageDescription.ServiceManifestName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restartDeployedCodePackageDescription.CodePackageName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restartDeployedCodePackageDescription.CodePackageInstanceID", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartDeployedCodePackage", err.Error()) + } + + req, err := client.RestartDeployedCodePackagePreparer(ctx, nodeName, applicationID, restartDeployedCodePackageDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", nil, "Failure preparing request") + return + } + + resp, err := client.RestartDeployedCodePackageSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", resp, "Failure sending request") + return + } + + result, err = client.RestartDeployedCodePackageResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", resp, "Failure responding to request") + } + + return +} + +// RestartDeployedCodePackagePreparer prepares the RestartDeployedCodePackage request. +func (client BaseClient) RestartDeployedCodePackagePreparer(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription RestartDeployedCodePackageDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/Restart", pathParameters), + autorest.WithJSON(restartDeployedCodePackageDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartDeployedCodePackageSender sends the RestartDeployedCodePackage request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartDeployedCodePackageSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartDeployedCodePackageResponder handles the response to the RestartDeployedCodePackage request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartDeployedCodePackageResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestartNode restarts a Service Fabric cluster node that is already started. +// Parameters: +// nodeName - the name of the node. +// restartNodeDescription - the instance of the node to be restarted and a flag indicating the need to take +// dump of the fabric process. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartNode(ctx context.Context, nodeName string, restartNodeDescription RestartNodeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restartNodeDescription, + Constraints: []validation.Constraint{{Target: "restartNodeDescription.NodeInstanceID", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartNode", err.Error()) + } + + req, err := client.RestartNodePreparer(ctx, nodeName, restartNodeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", nil, "Failure preparing request") + return + } + + resp, err := client.RestartNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", resp, "Failure sending request") + return + } + + result, err = client.RestartNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", resp, "Failure responding to request") + } + + return +} + +// RestartNodePreparer prepares the RestartNode request. +func (client BaseClient) RestartNodePreparer(ctx context.Context, nodeName string, restartNodeDescription RestartNodeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Restart", pathParameters), + autorest.WithJSON(restartNodeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartNodeSender sends the RestartNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartNodeResponder handles the response to the RestartNode request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestartReplica restarts a service replica of a persisted service running on a node. Warning - There are no safety +// checks performed when this API is used. Incorrect use of this API can lead to availability loss for stateful +// services. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartReplica") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartReplica", err.Error()) + } + + req, err := client.RestartReplicaPreparer(ctx, nodeName, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", nil, "Failure preparing request") + return + } + + resp, err := client.RestartReplicaSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", resp, "Failure sending request") + return + } + + result, err = client.RestartReplicaResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", resp, "Failure responding to request") + } + + return +} + +// RestartReplicaPreparer prepares the RestartReplica request. +func (client BaseClient) RestartReplicaPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Restart", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartReplicaSender sends the RestartReplica request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartReplicaSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartReplicaResponder handles the response to the RestartReplica request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartReplicaResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestorePartition restores the state of a of the stateful persisted partition using the specified backup point. In +// case the partition is already being periodically backed up, then by default the backup point is looked for in the +// storage specified in backup policy. One can also override the same by specifying the backup storage details as part +// of the restore partition description in body. Once the restore is initiated, its progress can be tracked using the +// GetRestoreProgress operation. +// In case, the operation times out, specify a greater restore timeout value in the query parameter. +// Parameters: +// partitionID - the identity of the partition. +// restorePartitionDescription - describes the parameters to restore the partition. +// restoreTimeout - specifies the maximum amount of time to wait, in minutes, for the restore operation to +// complete. Post that, the operation returns back with timeout error. However, in certain corner cases it +// could be that the restore operation goes through even though it completes with timeout. In case of timeout +// error, its recommended to invoke this operation again with a greater timeout value. the default value for +// the same is 10 minutes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestorePartition(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestorePartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restorePartitionDescription, + Constraints: []validation.Constraint{{Target: "restorePartitionDescription.BackupID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restorePartitionDescription.BackupLocation", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestorePartition", err.Error()) + } + + req, err := client.RestorePartitionPreparer(ctx, partitionID, restorePartitionDescription, restoreTimeout, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", nil, "Failure preparing request") + return + } + + resp, err := client.RestorePartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", resp, "Failure sending request") + return + } + + result, err = client.RestorePartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", resp, "Failure responding to request") + } + + return +} + +// RestorePartitionPreparer prepares the RestorePartition request. +func (client BaseClient) RestorePartitionPreparer(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if restoreTimeout != nil { + queryParameters["RestoreTimeout"] = autorest.Encode("query", *restoreTimeout) + } else { + queryParameters["RestoreTimeout"] = autorest.Encode("query", 10) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Restore", pathParameters), + autorest.WithJSON(restorePartitionDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestorePartitionSender sends the RestorePartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestorePartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestorePartitionResponder handles the response to the RestorePartition request. The method always +// closes the http.Response Body. +func (client BaseClient) RestorePartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeApplicationBackup the previously suspended Service Fabric application resumes taking periodic backup as per +// the backup policy currently configured for the same. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeApplicationBackup", err.Error()) + } + + req, err := client.ResumeApplicationBackupPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumeApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// ResumeApplicationBackupPreparer prepares the ResumeApplicationBackup request. +func (client BaseClient) ResumeApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeApplicationBackupSender sends the ResumeApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeApplicationBackupResponder handles the response to the ResumeApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeApplicationUpgrade resumes an unmonitored manual Service Fabric application upgrade. Service Fabric upgrades +// one upgrade domain at a time. For unmonitored manual upgrades, after Service Fabric finishes an upgrade domain, it +// waits for you to call this API before proceeding to the next upgrade domain. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// resumeApplicationUpgradeDescription - describes the parameters for resuming an application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeApplicationUpgrade(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription ResumeApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resumeApplicationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "resumeApplicationUpgradeDescription.UpgradeDomainName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeApplicationUpgrade", err.Error()) + } + + req, err := client.ResumeApplicationUpgradePreparer(ctx, applicationID, resumeApplicationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.ResumeApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// ResumeApplicationUpgradePreparer prepares the ResumeApplicationUpgrade request. +func (client BaseClient) ResumeApplicationUpgradePreparer(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription ResumeApplicationUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/MoveToNextUpgradeDomain", pathParameters), + autorest.WithJSON(resumeApplicationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeApplicationUpgradeSender sends the ResumeApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeApplicationUpgradeResponder handles the response to the ResumeApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeClusterUpgrade make the cluster code or configuration upgrade move on to the next upgrade domain if +// appropriate. +// Parameters: +// resumeClusterUpgradeDescription - describes the parameters for resuming a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeClusterUpgrade(ctx context.Context, resumeClusterUpgradeDescription ResumeClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resumeClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "resumeClusterUpgradeDescription.UpgradeDomain", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeClusterUpgrade", err.Error()) + } + + req, err := client.ResumeClusterUpgradePreparer(ctx, resumeClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.ResumeClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// ResumeClusterUpgradePreparer prepares the ResumeClusterUpgrade request. +func (client BaseClient) ResumeClusterUpgradePreparer(ctx context.Context, resumeClusterUpgradeDescription ResumeClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/MoveToNextUpgradeDomain"), + autorest.WithJSON(resumeClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeClusterUpgradeSender sends the ResumeClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeClusterUpgradeResponder handles the response to the ResumeClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumePartitionBackup the previously suspended partition resumes taking periodic backup as per the backup policy +// currently configured for the same. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumePartitionBackup", err.Error()) + } + + req, err := client.ResumePartitionBackupPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// ResumePartitionBackupPreparer prepares the ResumePartitionBackup request. +func (client BaseClient) ResumePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumePartitionBackupSender sends the ResumePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumePartitionBackupResponder handles the response to the ResumePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeServiceBackup the previously suspended Service Fabric service resumes taking periodic backup as per the backup +// policy currently configured for the same. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeServiceBackup", err.Error()) + } + + req, err := client.ResumeServiceBackupPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumeServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", resp, "Failure responding to request") + } + + return +} + +// ResumeServiceBackupPreparer prepares the ResumeServiceBackup request. +func (client BaseClient) ResumeServiceBackupPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeServiceBackupSender sends the ResumeServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeServiceBackupResponder handles the response to the ResumeServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// RollbackApplicationUpgrade starts rolling back the current application upgrade to the previous version. This API can +// only be used to roll back the current in-progress upgrade that is rolling forward to new version. If the application +// is not currently being upgraded use StartApplicationUpgrade API to upgrade it to desired version, including rolling +// back to a previous version. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RollbackApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RollbackApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RollbackApplicationUpgrade", err.Error()) + } + + req, err := client.RollbackApplicationUpgradePreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.RollbackApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.RollbackApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// RollbackApplicationUpgradePreparer prepares the RollbackApplicationUpgrade request. +func (client BaseClient) RollbackApplicationUpgradePreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/RollbackUpgrade", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RollbackApplicationUpgradeSender sends the RollbackApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RollbackApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RollbackApplicationUpgradeResponder handles the response to the RollbackApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) RollbackApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RollbackClusterUpgrade rollback the code or configuration upgrade of a Service Fabric cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RollbackClusterUpgrade(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RollbackClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RollbackClusterUpgrade", err.Error()) + } + + req, err := client.RollbackClusterUpgradePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.RollbackClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.RollbackClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// RollbackClusterUpgradePreparer prepares the RollbackClusterUpgrade request. +func (client BaseClient) RollbackClusterUpgradePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RollbackUpgrade"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RollbackClusterUpgradeSender sends the RollbackClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RollbackClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RollbackClusterUpgradeResponder handles the response to the RollbackClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) RollbackClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SetUpgradeOrchestrationServiceState update the service state of Service Fabric Upgrade Orchestration Service. This +// API is internally used for support purposes. +// Parameters: +// upgradeOrchestrationServiceState - service state of Service Fabric Upgrade Orchestration Service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SetUpgradeOrchestrationServiceState(ctx context.Context, upgradeOrchestrationServiceState UpgradeOrchestrationServiceState, timeout *int64) (result UpgradeOrchestrationServiceStateSummary, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SetUpgradeOrchestrationServiceState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", err.Error()) + } + + req, err := client.SetUpgradeOrchestrationServiceStatePreparer(ctx, upgradeOrchestrationServiceState, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", nil, "Failure preparing request") + return + } + + resp, err := client.SetUpgradeOrchestrationServiceStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", resp, "Failure sending request") + return + } + + result, err = client.SetUpgradeOrchestrationServiceStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", resp, "Failure responding to request") + } + + return +} + +// SetUpgradeOrchestrationServiceStatePreparer prepares the SetUpgradeOrchestrationServiceState request. +func (client BaseClient) SetUpgradeOrchestrationServiceStatePreparer(ctx context.Context, upgradeOrchestrationServiceState UpgradeOrchestrationServiceState, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/SetUpgradeOrchestrationServiceState"), + autorest.WithJSON(upgradeOrchestrationServiceState), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SetUpgradeOrchestrationServiceStateSender sends the SetUpgradeOrchestrationServiceState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SetUpgradeOrchestrationServiceStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SetUpgradeOrchestrationServiceStateResponder handles the response to the SetUpgradeOrchestrationServiceState request. The method always +// closes the http.Response Body. +func (client BaseClient) SetUpgradeOrchestrationServiceStateResponder(resp *http.Response) (result UpgradeOrchestrationServiceStateSummary, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// StartApplicationUpgrade validates the supplied application upgrade parameters and starts upgrading the application +// if the parameters are valid. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// applicationUpgradeDescription - parameters for an application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeDescription ApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "applicationUpgradeDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationUpgradeDescription.TargetApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationUpgradeDescription.Parameters", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartApplicationUpgrade", err.Error()) + } + + req, err := client.StartApplicationUpgradePreparer(ctx, applicationID, applicationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartApplicationUpgradePreparer prepares the StartApplicationUpgrade request. +func (client BaseClient) StartApplicationUpgradePreparer(ctx context.Context, applicationID string, applicationUpgradeDescription ApplicationUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/Upgrade", pathParameters), + autorest.WithJSON(applicationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartApplicationUpgradeSender sends the StartApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartApplicationUpgradeResponder handles the response to the StartApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartChaos if Chaos is not already running in the cluster, it starts Chaos with the passed in Chaos parameters. +// If Chaos is already running when this call is made, the call fails with the error code +// FABRIC_E_CHAOS_ALREADY_RUNNING. +// Refer to the article [Induce controlled Chaos in Service Fabric +// clusters](https://docs.microsoft.com/azure/service-fabric/service-fabric-controlled-chaos) for more details. +// Parameters: +// chaosParameters - describes all the parameters to configure a Chaos run. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartChaos(ctx context.Context, chaosParameters ChaosParameters, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartChaos") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: chaosParameters, + Constraints: []validation.Constraint{{Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.MaxConcurrentFaults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.MaxConcurrentFaults", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.MaxConcurrentFaults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartChaos", err.Error()) + } + + req, err := client.StartChaosPreparer(ctx, chaosParameters, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", nil, "Failure preparing request") + return + } + + resp, err := client.StartChaosSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", resp, "Failure sending request") + return + } + + result, err = client.StartChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", resp, "Failure responding to request") + } + + return +} + +// StartChaosPreparer prepares the StartChaos request. +func (client BaseClient) StartChaosPreparer(ctx context.Context, chaosParameters ChaosParameters, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/$/Start"), + autorest.WithJSON(chaosParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartChaosSender sends the StartChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartChaosResponder handles the response to the StartChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) StartChaosResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartClusterConfigurationUpgrade validate the supplied configuration upgrade parameters and start upgrading the +// cluster configuration if the parameters are valid. +// Parameters: +// clusterConfigurationUpgradeDescription - parameters for a standalone cluster configuration upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartClusterConfigurationUpgrade(ctx context.Context, clusterConfigurationUpgradeDescription ClusterConfigurationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartClusterConfigurationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: clusterConfigurationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "clusterConfigurationUpgradeDescription.ClusterConfig", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartClusterConfigurationUpgrade", err.Error()) + } + + req, err := client.StartClusterConfigurationUpgradePreparer(ctx, clusterConfigurationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartClusterConfigurationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartClusterConfigurationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartClusterConfigurationUpgradePreparer prepares the StartClusterConfigurationUpgrade request. +func (client BaseClient) StartClusterConfigurationUpgradePreparer(ctx context.Context, clusterConfigurationUpgradeDescription ClusterConfigurationUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/StartClusterConfigurationUpgrade"), + autorest.WithJSON(clusterConfigurationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartClusterConfigurationUpgradeSender sends the StartClusterConfigurationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartClusterConfigurationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartClusterConfigurationUpgradeResponder handles the response to the StartClusterConfigurationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartClusterConfigurationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartClusterUpgrade validate the supplied upgrade parameters and start upgrading the code or configuration version +// of a Service Fabric cluster if the parameters are valid. +// Parameters: +// startClusterUpgradeDescription - describes the parameters for starting a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartClusterUpgrade(ctx context.Context, startClusterUpgradeDescription StartClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: startClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartClusterUpgrade", err.Error()) + } + + req, err := client.StartClusterUpgradePreparer(ctx, startClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartClusterUpgradePreparer prepares the StartClusterUpgrade request. +func (client BaseClient) StartClusterUpgradePreparer(ctx context.Context, startClusterUpgradeDescription StartClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Upgrade"), + autorest.WithJSON(startClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartClusterUpgradeSender sends the StartClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartClusterUpgradeResponder handles the response to the StartClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartComposeDeploymentUpgrade validates the supplied upgrade parameters and starts upgrading the deployment if the +// parameters are valid. +// Parameters: +// deploymentName - the identity of the deployment. +// composeDeploymentUpgradeDescription - parameters for upgrading compose deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartComposeDeploymentUpgrade(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription ComposeDeploymentUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartComposeDeploymentUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: composeDeploymentUpgradeDescription, + Constraints: []validation.Constraint{{Target: "composeDeploymentUpgradeDescription.DeploymentName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "composeDeploymentUpgradeDescription.ComposeFileContent", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartComposeDeploymentUpgrade", err.Error()) + } + + req, err := client.StartComposeDeploymentUpgradePreparer(ctx, deploymentName, composeDeploymentUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartComposeDeploymentUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartComposeDeploymentUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartComposeDeploymentUpgradePreparer prepares the StartComposeDeploymentUpgrade request. +func (client BaseClient) StartComposeDeploymentUpgradePreparer(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription ComposeDeploymentUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/Upgrade", pathParameters), + autorest.WithJSON(composeDeploymentUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartComposeDeploymentUpgradeSender sends the StartComposeDeploymentUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartComposeDeploymentUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartComposeDeploymentUpgradeResponder handles the response to the StartComposeDeploymentUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartComposeDeploymentUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartDataLoss this API will induce data loss for the specified partition. It will trigger a call to the OnDataLoss +// API of the partition. +// Actual data loss will depend on the specified DataLossMode. +// +// - PartialDataLoss - Only a quorum of replicas are removed and OnDataLoss is triggered for the partition but actual +// data loss depends on the presence of in-flight replication. +// - FullDataLoss - All replicas are removed hence all data is lost and OnDataLoss is triggered. +// +// This API should only be called with a stateful service as the target. +// +// Calling this API with a system service as the target is not advised. +// +// Note: Once this API has been called, it cannot be reversed. Calling CancelOperation will only stop execution and +// clean up internal system state. +// It will not restore data if the command has progressed far enough to cause data loss. +// +// Call the GetDataLossProgress API with the same OperationId to return information on the operation started with this +// API. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// dataLossMode - this enum is passed to the StartDataLoss API to indicate what type of data loss to induce. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartDataLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode DataLossMode, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartDataLoss") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartDataLoss", err.Error()) + } + + req, err := client.StartDataLossPreparer(ctx, serviceID, partitionID, operationID, dataLossMode, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", nil, "Failure preparing request") + return + } + + resp, err := client.StartDataLossSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", resp, "Failure sending request") + return + } + + result, err = client.StartDataLossResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", resp, "Failure responding to request") + } + + return +} + +// StartDataLossPreparer prepares the StartDataLoss request. +func (client BaseClient) StartDataLossPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode DataLossMode, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "DataLossMode": autorest.Encode("query", dataLossMode), + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartDataLoss", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartDataLossSender sends the StartDataLoss request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartDataLossSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartDataLossResponder handles the response to the StartDataLoss request. The method always +// closes the http.Response Body. +func (client BaseClient) StartDataLossResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartNodeTransition starts or stops a cluster node. A cluster node is a process, not the OS instance itself. To +// start a node, pass in "Start" for the NodeTransitionType parameter. +// To stop a node, pass in "Stop" for the NodeTransitionType parameter. This API starts the operation - when the API +// returns the node may not have finished transitioning yet. +// Call GetNodeTransitionProgress with the same OperationId to get the progress of the operation. +// Parameters: +// nodeName - the name of the node. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// nodeTransitionType - indicates the type of transition to perform. NodeTransitionType.Start will start a +// stopped node. NodeTransitionType.Stop will stop a node that is up. +// nodeInstanceID - the node instance ID of the target node. This can be determined through GetNodeInfo API. +// stopDurationInSeconds - the duration, in seconds, to keep the node stopped. The minimum value is 600, the +// maximum is 14400. After this time expires, the node will automatically come back up. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartNodeTransition(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartNodeTransition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: stopDurationInSeconds, + Constraints: []validation.Constraint{{Target: "stopDurationInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartNodeTransition", err.Error()) + } + + req, err := client.StartNodeTransitionPreparer(ctx, nodeName, operationID, nodeTransitionType, nodeInstanceID, stopDurationInSeconds, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", nil, "Failure preparing request") + return + } + + resp, err := client.StartNodeTransitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", resp, "Failure sending request") + return + } + + result, err = client.StartNodeTransitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", resp, "Failure responding to request") + } + + return +} + +// StartNodeTransitionPreparer prepares the StartNodeTransition request. +func (client BaseClient) StartNodeTransitionPreparer(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "NodeInstanceId": autorest.Encode("query", nodeInstanceID), + "NodeTransitionType": autorest.Encode("query", nodeTransitionType), + "OperationId": autorest.Encode("query", operationID), + "StopDurationInSeconds": autorest.Encode("query", stopDurationInSeconds), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Nodes/{nodeName}/$/StartTransition/", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartNodeTransitionSender sends the StartNodeTransition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartNodeTransitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartNodeTransitionResponder handles the response to the StartNodeTransition request. The method always +// closes the http.Response Body. +func (client BaseClient) StartNodeTransitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartPartitionRestart this API is useful for testing failover. +// +// If used to target a stateless service partition, RestartPartitionMode must be AllReplicasOrInstances. +// +// Call the GetPartitionRestartProgress API using the same OperationId to get the progress. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// restartPartitionMode - describe which partitions to restart. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartPartitionRestart(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode RestartPartitionMode, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartPartitionRestart") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartPartitionRestart", err.Error()) + } + + req, err := client.StartPartitionRestartPreparer(ctx, serviceID, partitionID, operationID, restartPartitionMode, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", nil, "Failure preparing request") + return + } + + resp, err := client.StartPartitionRestartSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", resp, "Failure sending request") + return + } + + result, err = client.StartPartitionRestartResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", resp, "Failure responding to request") + } + + return +} + +// StartPartitionRestartPreparer prepares the StartPartitionRestart request. +func (client BaseClient) StartPartitionRestartPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode RestartPartitionMode, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + "RestartPartitionMode": autorest.Encode("query", restartPartitionMode), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartRestart", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartPartitionRestartSender sends the StartPartitionRestart request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartPartitionRestartSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartPartitionRestartResponder handles the response to the StartPartitionRestart request. The method always +// closes the http.Response Body. +func (client BaseClient) StartPartitionRestartResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartQuorumLoss this API is useful for a temporary quorum loss situation on your service. +// +// Call the GetQuorumLossProgress API with the same OperationId to return information on the operation started with +// this API. +// +// This can only be called on stateful persisted (HasPersistedState==true) services. Do not use this API on stateless +// services or stateful in-memory only services. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// quorumLossMode - this enum is passed to the StartQuorumLoss API to indicate what type of quorum loss to +// induce. +// quorumLossDuration - the amount of time for which the partition will be kept in quorum loss. This must be +// specified in seconds. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartQuorumLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode QuorumLossMode, quorumLossDuration int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartQuorumLoss") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartQuorumLoss", err.Error()) + } + + req, err := client.StartQuorumLossPreparer(ctx, serviceID, partitionID, operationID, quorumLossMode, quorumLossDuration, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", nil, "Failure preparing request") + return + } + + resp, err := client.StartQuorumLossSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", resp, "Failure sending request") + return + } + + result, err = client.StartQuorumLossResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", resp, "Failure responding to request") + } + + return +} + +// StartQuorumLossPreparer prepares the StartQuorumLoss request. +func (client BaseClient) StartQuorumLossPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode QuorumLossMode, quorumLossDuration int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + "QuorumLossDuration": autorest.Encode("query", quorumLossDuration), + "QuorumLossMode": autorest.Encode("query", quorumLossMode), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartQuorumLoss", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartQuorumLossSender sends the StartQuorumLoss request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartQuorumLossSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartQuorumLossResponder handles the response to the StartQuorumLoss request. The method always +// closes the http.Response Body. +func (client BaseClient) StartQuorumLossResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StopChaos stops Chaos from executing new faults. In-flight faults will continue to execute until they are complete. +// The current Chaos Schedule is put into a stopped state. +// Once a schedule is stopped, it will stay in the stopped state and not be used to Chaos Schedule new runs of Chaos. A +// new Chaos Schedule must be set in order to resume scheduling. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StopChaos(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StopChaos") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StopChaos", err.Error()) + } + + req, err := client.StopChaosPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", nil, "Failure preparing request") + return + } + + resp, err := client.StopChaosSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", resp, "Failure sending request") + return + } + + result, err = client.StopChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", resp, "Failure responding to request") + } + + return +} + +// StopChaosPreparer prepares the StopChaos request. +func (client BaseClient) StopChaosPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/$/Stop"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StopChaosSender sends the StopChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StopChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StopChaosResponder handles the response to the StopChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) StopChaosResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// SubmitPropertyBatch submits a batch of property operations. Either all or none of the operations will be committed. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyBatchDescriptionList - describes the property batch operations to be submitted. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SubmitPropertyBatch(ctx context.Context, nameID string, propertyBatchDescriptionList PropertyBatchDescriptionList, timeout *int64) (result PropertyBatchInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SubmitPropertyBatch") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SubmitPropertyBatch", err.Error()) + } + + req, err := client.SubmitPropertyBatchPreparer(ctx, nameID, propertyBatchDescriptionList, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", nil, "Failure preparing request") + return + } + + resp, err := client.SubmitPropertyBatchSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", resp, "Failure sending request") + return + } + + result, err = client.SubmitPropertyBatchResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", resp, "Failure responding to request") + } + + return +} + +// SubmitPropertyBatchPreparer prepares the SubmitPropertyBatch request. +func (client BaseClient) SubmitPropertyBatchPreparer(ctx context.Context, nameID string, propertyBatchDescriptionList PropertyBatchDescriptionList, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperties/$/SubmitBatch", pathParameters), + autorest.WithJSON(propertyBatchDescriptionList), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SubmitPropertyBatchSender sends the SubmitPropertyBatch request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SubmitPropertyBatchSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SubmitPropertyBatchResponder handles the response to the SubmitPropertyBatch request. The method always +// closes the http.Response Body. +func (client BaseClient) SubmitPropertyBatchResponder(resp *http.Response) (result PropertyBatchInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusConflict), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// SuspendApplicationBackup the application which is configured to take periodic backups, is suspended for taking +// further backups till it is resumed again. This operation applies to the entire application's hierarchy. It means all +// the services and partitions under this application are now suspended for backup. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendApplicationBackup", err.Error()) + } + + req, err := client.SuspendApplicationBackupPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendApplicationBackupPreparer prepares the SuspendApplicationBackup request. +func (client BaseClient) SuspendApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendApplicationBackupSender sends the SuspendApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendApplicationBackupResponder handles the response to the SuspendApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SuspendPartitionBackup the partition which is configured to take periodic backups, is suspended for taking further +// backups till it is resumed again. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendPartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendPartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendPartitionBackup", err.Error()) + } + + req, err := client.SuspendPartitionBackupPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendPartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendPartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendPartitionBackupPreparer prepares the SuspendPartitionBackup request. +func (client BaseClient) SuspendPartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendPartitionBackupSender sends the SuspendPartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendPartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendPartitionBackupResponder handles the response to the SuspendPartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendPartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SuspendServiceBackup the service which is configured to take periodic backups, is suspended for taking further +// backups till it is resumed again. This operation applies to the entire service's hierarchy. It means all the +// partitions under this service are now suspended for backup. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendServiceBackup", err.Error()) + } + + req, err := client.SuspendServiceBackupPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendServiceBackupPreparer prepares the SuspendServiceBackup request. +func (client BaseClient) SuspendServiceBackupPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendServiceBackupSender sends the SuspendServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendServiceBackupResponder handles the response to the SuspendServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// UnprovisionApplicationType this operation can only be performed if all application instances of the application type +// have been deleted. Once the application type is unregistered, no new application instances can be created for this +// particular application type. +// Parameters: +// applicationTypeName - the name of the application type. +// unprovisionApplicationTypeDescriptionInfo - the relative path for the application package in the image store +// specified during the prior copy operation. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UnprovisionApplicationType(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UnprovisionApplicationType") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: unprovisionApplicationTypeDescriptionInfo, + Constraints: []validation.Constraint{{Target: "unprovisionApplicationTypeDescriptionInfo.ApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UnprovisionApplicationType", err.Error()) + } + + req, err := client.UnprovisionApplicationTypePreparer(ctx, applicationTypeName, unprovisionApplicationTypeDescriptionInfo, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", nil, "Failure preparing request") + return + } + + resp, err := client.UnprovisionApplicationTypeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", resp, "Failure sending request") + return + } + + result, err = client.UnprovisionApplicationTypeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", resp, "Failure responding to request") + } + + return +} + +// UnprovisionApplicationTypePreparer prepares the UnprovisionApplicationType request. +func (client BaseClient) UnprovisionApplicationTypePreparer(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/Unprovision", pathParameters), + autorest.WithJSON(unprovisionApplicationTypeDescriptionInfo), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UnprovisionApplicationTypeSender sends the UnprovisionApplicationType request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UnprovisionApplicationTypeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UnprovisionApplicationTypeResponder handles the response to the UnprovisionApplicationType request. The method always +// closes the http.Response Body. +func (client BaseClient) UnprovisionApplicationTypeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// UnprovisionCluster it is supported to unprovision code and configuration separately. +// Parameters: +// unprovisionFabricDescription - describes the parameters for unprovisioning a cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UnprovisionCluster(ctx context.Context, unprovisionFabricDescription UnprovisionFabricDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UnprovisionCluster") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UnprovisionCluster", err.Error()) + } + + req, err := client.UnprovisionClusterPreparer(ctx, unprovisionFabricDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", nil, "Failure preparing request") + return + } + + resp, err := client.UnprovisionClusterSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", resp, "Failure sending request") + return + } + + result, err = client.UnprovisionClusterResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", resp, "Failure responding to request") + } + + return +} + +// UnprovisionClusterPreparer prepares the UnprovisionCluster request. +func (client BaseClient) UnprovisionClusterPreparer(ctx context.Context, unprovisionFabricDescription UnprovisionFabricDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Unprovision"), + autorest.WithJSON(unprovisionFabricDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UnprovisionClusterSender sends the UnprovisionCluster request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UnprovisionClusterSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UnprovisionClusterResponder handles the response to the UnprovisionCluster request. The method always +// closes the http.Response Body. +func (client BaseClient) UnprovisionClusterResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateApplicationUpgrade updates the parameters of an ongoing application upgrade from the ones specified at the +// time of starting the application upgrade. This may be required to mitigate stuck application upgrades due to +// incorrect parameters or issues in the application to make progress. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// applicationUpgradeUpdateDescription - parameters for updating an existing application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription ApplicationUpgradeUpdateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationUpgradeUpdateDescription, + Constraints: []validation.Constraint{{Target: "applicationUpgradeUpdateDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateApplicationUpgrade", err.Error()) + } + + req, err := client.UpdateApplicationUpgradePreparer(ctx, applicationID, applicationUpgradeUpdateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.UpdateApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// UpdateApplicationUpgradePreparer prepares the UpdateApplicationUpgrade request. +func (client BaseClient) UpdateApplicationUpgradePreparer(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription ApplicationUpgradeUpdateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/UpdateUpgrade", pathParameters), + autorest.WithJSON(applicationUpgradeUpdateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateApplicationUpgradeSender sends the UpdateApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateApplicationUpgradeResponder handles the response to the UpdateApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateBackupPolicy updates the backup policy identified by {backupPolicyName} +// Parameters: +// backupPolicyDescription - describes the backup policy. +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateBackupPolicy(ctx context.Context, backupPolicyDescription BackupPolicyDescription, backupPolicyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: backupPolicyDescription, + Constraints: []validation.Constraint{{Target: "backupPolicyDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.AutoRestoreOnDataLoss", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMaximum, Rule: int64(255), Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "backupPolicyDescription.Schedule", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateBackupPolicy", err.Error()) + } + + req, err := client.UpdateBackupPolicyPreparer(ctx, backupPolicyDescription, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.UpdateBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// UpdateBackupPolicyPreparer prepares the UpdateBackupPolicy request. +func (client BaseClient) UpdateBackupPolicyPreparer(ctx context.Context, backupPolicyDescription BackupPolicyDescription, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/Update", pathParameters), + autorest.WithJSON(backupPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateBackupPolicySender sends the UpdateBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateBackupPolicyResponder handles the response to the UpdateBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateClusterUpgrade update the upgrade parameters used during a Service Fabric cluster upgrade. +// Parameters: +// updateClusterUpgradeDescription - parameters for updating a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateClusterUpgrade(ctx context.Context, updateClusterUpgradeDescription UpdateClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: updateClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateClusterUpgrade", err.Error()) + } + + req, err := client.UpdateClusterUpgradePreparer(ctx, updateClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.UpdateClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// UpdateClusterUpgradePreparer prepares the UpdateClusterUpgrade request. +func (client BaseClient) UpdateClusterUpgradePreparer(ctx context.Context, updateClusterUpgradeDescription UpdateClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateUpgrade"), + autorest.WithJSON(updateClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateClusterUpgradeSender sends the UpdateClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateClusterUpgradeResponder handles the response to the UpdateClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateRepairExecutionState this API supports the Service Fabric platform; it is not meant to be used directly from +// your code. +// Parameters: +// repairTask - describes the repair task to be created or updated. +func (client BaseClient) UpdateRepairExecutionState(ctx context.Context, repairTask RepairTask) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateRepairExecutionState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTask, + Constraints: []validation.Constraint{{Target: "repairTask.TaskID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "repairTask.Action", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateRepairExecutionState", err.Error()) + } + + req, err := client.UpdateRepairExecutionStatePreparer(ctx, repairTask) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateRepairExecutionStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", resp, "Failure sending request") + return + } + + result, err = client.UpdateRepairExecutionStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", resp, "Failure responding to request") + } + + return +} + +// UpdateRepairExecutionStatePreparer prepares the UpdateRepairExecutionState request. +func (client BaseClient) UpdateRepairExecutionStatePreparer(ctx context.Context, repairTask RepairTask) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateRepairExecutionState"), + autorest.WithJSON(repairTask), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateRepairExecutionStateSender sends the UpdateRepairExecutionState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateRepairExecutionStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateRepairExecutionStateResponder handles the response to the UpdateRepairExecutionState request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateRepairExecutionStateResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UpdateRepairTaskHealthPolicy this API supports the Service Fabric platform; it is not meant to be used directly from +// your code. +// Parameters: +// repairTaskUpdateHealthPolicyDescription - describes the repair task healthy policy to be updated. +func (client BaseClient) UpdateRepairTaskHealthPolicy(ctx context.Context, repairTaskUpdateHealthPolicyDescription RepairTaskUpdateHealthPolicyDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateRepairTaskHealthPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskUpdateHealthPolicyDescription, + Constraints: []validation.Constraint{{Target: "repairTaskUpdateHealthPolicyDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", err.Error()) + } + + req, err := client.UpdateRepairTaskHealthPolicyPreparer(ctx, repairTaskUpdateHealthPolicyDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateRepairTaskHealthPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", resp, "Failure sending request") + return + } + + result, err = client.UpdateRepairTaskHealthPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", resp, "Failure responding to request") + } + + return +} + +// UpdateRepairTaskHealthPolicyPreparer prepares the UpdateRepairTaskHealthPolicy request. +func (client BaseClient) UpdateRepairTaskHealthPolicyPreparer(ctx context.Context, repairTaskUpdateHealthPolicyDescription RepairTaskUpdateHealthPolicyDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateRepairTaskHealthPolicy"), + autorest.WithJSON(repairTaskUpdateHealthPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateRepairTaskHealthPolicySender sends the UpdateRepairTaskHealthPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateRepairTaskHealthPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateRepairTaskHealthPolicyResponder handles the response to the UpdateRepairTaskHealthPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateRepairTaskHealthPolicyResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UpdateService this API allows updating properties of a running Service Fabric service. The set of properties that +// can be updated are a subset of the properties that were specified at the time of creating the service. The current +// set of properties can be obtained using `GetServiceDescription` API. Note that updating the properties of a running +// service is different than upgrading your application using `StartApplicationUpgrade` API. The upgrade is a long +// running background operation that involves moving the application from one version to another, one upgrade domain at +// a time, whereas update applies the new properties immediately to the service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// serviceUpdateDescription - the information necessary to update a service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateService(ctx context.Context, serviceID string, serviceUpdateDescription BasicServiceUpdateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateService", err.Error()) + } + + req, err := client.UpdateServicePreparer(ctx, serviceID, serviceUpdateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", resp, "Failure sending request") + return + } + + result, err = client.UpdateServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", resp, "Failure responding to request") + } + + return +} + +// UpdateServicePreparer prepares the UpdateService request. +func (client BaseClient) UpdateServicePreparer(ctx context.Context, serviceID string, serviceUpdateDescription BasicServiceUpdateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/Update", pathParameters), + autorest.WithJSON(serviceUpdateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateServiceSender sends the UpdateService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateServiceResponder handles the response to the UpdateService request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UploadFile uploads contents of the file to the image store. Use this API if the file is small enough to upload again +// if the connection fails. The file's data needs to be added to the request body. The contents will be uploaded to the +// specified path. Image store service uses a mark file to indicate the availability of the folder. The mark file is an +// empty file named "_.dir". The mark file is generated by the image store service when all files in a folder are +// uploaded. When using File-by-File approach to upload application package in REST, the image store service isn't +// aware of the file hierarchy of the application package; you need to create a mark file per folder and upload it +// last, to let the image store service know that the folder is complete. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UploadFile(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UploadFile") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UploadFile", err.Error()) + } + + req, err := client.UploadFilePreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", nil, "Failure preparing request") + return + } + + resp, err := client.UploadFileSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", resp, "Failure sending request") + return + } + + result, err = client.UploadFileResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", resp, "Failure responding to request") + } + + return +} + +// UploadFilePreparer prepares the UploadFile request. +func (client BaseClient) UploadFilePreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadFileSender sends the UploadFile request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UploadFileSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UploadFileResponder handles the response to the UploadFile request. The method always +// closes the http.Response Body. +func (client BaseClient) UploadFileResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UploadFileChunk uploads a file chunk to the image store with the specified upload session ID and image store +// relative path. This API allows user to resume the file upload operation. user doesn't have to restart the file +// upload from scratch whenever there is a network interruption. Use this option if the file size is large. +// +// To perform a resumable file upload, user need to break the file into multiple chunks and upload these chunks to the +// image store one-by-one. Chunks don't have to be uploaded in order. If the file represented by the image store +// relative path already exists, it will be overwritten when the upload session commits. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// contentRange - when uploading file chunks to the image store, the Content-Range header field need to be +// configured and sent with a request. The format should looks like "bytes +// {First-Byte-Position}-{Last-Byte-Position}/{File-Length}". For example, Content-Range:bytes 300-5000/20000 +// indicates that user is sending bytes 300 through 5,000 and the total file length is 20,000 bytes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UploadFileChunk(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UploadFileChunk") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UploadFileChunk", err.Error()) + } + + req, err := client.UploadFileChunkPreparer(ctx, contentPath, sessionID, contentRange, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", nil, "Failure preparing request") + return + } + + resp, err := client.UploadFileChunkSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", resp, "Failure sending request") + return + } + + result, err = client.UploadFileChunkResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", resp, "Failure responding to request") + } + + return +} + +// UploadFileChunkPreparer prepares the UploadFileChunk request. +func (client BaseClient) UploadFileChunkPreparer(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}/$/UploadChunk", pathParameters), + autorest.WithQueryParameters(queryParameters), + autorest.WithHeader("Content-Range", autorest.String(contentRange))) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadFileChunkSender sends the UploadFileChunk request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UploadFileChunkSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UploadFileChunkResponder handles the response to the UploadFileChunk request. The method always +// closes the http.Response Body. +func (client BaseClient) UploadFileChunkResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} diff --git a/services/servicefabric/6.3/servicefabric/models.go b/services/servicefabric/6.3/servicefabric/models.go new file mode 100644 index 000000000000..0a2d97837ecf --- /dev/null +++ b/services/servicefabric/6.3/servicefabric/models.go @@ -0,0 +1,53639 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/date" + "github.com/satori/go.uuid" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.3/servicefabric" + +// ApplicationDefinitionKind enumerates the values for application definition kind. +type ApplicationDefinitionKind string + +const ( + // Compose Indicates the application is defined by compose file(s). The value is 1. + Compose ApplicationDefinitionKind = "Compose" + // Invalid Indicates the application definition kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is 65535. + Invalid ApplicationDefinitionKind = "Invalid" + // ServiceFabricApplicationDescription Indicates the application is defined by a Service Fabric application + // description. The value is 0. + ServiceFabricApplicationDescription ApplicationDefinitionKind = "ServiceFabricApplicationDescription" +) + +// PossibleApplicationDefinitionKindValues returns an array of possible values for the ApplicationDefinitionKind const type. +func PossibleApplicationDefinitionKindValues() []ApplicationDefinitionKind { + return []ApplicationDefinitionKind{Compose, Invalid, ServiceFabricApplicationDescription} +} + +// ApplicationPackageCleanupPolicy enumerates the values for application package cleanup policy. +type ApplicationPackageCleanupPolicy string + +const ( + // ApplicationPackageCleanupPolicyAutomatic Indicates that the service fabric runtime determines when to do + // the application package cleanup. By default, cleanup is done on successful provision. The value is 2. + ApplicationPackageCleanupPolicyAutomatic ApplicationPackageCleanupPolicy = "Automatic" + // ApplicationPackageCleanupPolicyDefault Indicates that the cleanup policy of application packages is + // based on the cluster setting "CleanupApplicationPackageOnProvisionSuccess." The value is 1. + ApplicationPackageCleanupPolicyDefault ApplicationPackageCleanupPolicy = "Default" + // ApplicationPackageCleanupPolicyInvalid Indicates that the application package cleanup policy is invalid. + // This value is default. The value is zero. + ApplicationPackageCleanupPolicyInvalid ApplicationPackageCleanupPolicy = "Invalid" + // ApplicationPackageCleanupPolicyManual Indicates that the user has to explicitly clean up the application + // package. The value is 3. + ApplicationPackageCleanupPolicyManual ApplicationPackageCleanupPolicy = "Manual" +) + +// PossibleApplicationPackageCleanupPolicyValues returns an array of possible values for the ApplicationPackageCleanupPolicy const type. +func PossibleApplicationPackageCleanupPolicyValues() []ApplicationPackageCleanupPolicy { + return []ApplicationPackageCleanupPolicy{ApplicationPackageCleanupPolicyAutomatic, ApplicationPackageCleanupPolicyDefault, ApplicationPackageCleanupPolicyInvalid, ApplicationPackageCleanupPolicyManual} +} + +// ApplicationResourceStatus enumerates the values for application resource status. +type ApplicationResourceStatus string + +const ( + // ApplicationResourceStatusCreating ... + ApplicationResourceStatusCreating ApplicationResourceStatus = "Creating" + // ApplicationResourceStatusDeleting ... + ApplicationResourceStatusDeleting ApplicationResourceStatus = "Deleting" + // ApplicationResourceStatusFailed ... + ApplicationResourceStatusFailed ApplicationResourceStatus = "Failed" + // ApplicationResourceStatusInvalid ... + ApplicationResourceStatusInvalid ApplicationResourceStatus = "Invalid" + // ApplicationResourceStatusReady ... + ApplicationResourceStatusReady ApplicationResourceStatus = "Ready" + // ApplicationResourceStatusUpgrading ... + ApplicationResourceStatusUpgrading ApplicationResourceStatus = "Upgrading" +) + +// PossibleApplicationResourceStatusValues returns an array of possible values for the ApplicationResourceStatus const type. +func PossibleApplicationResourceStatusValues() []ApplicationResourceStatus { + return []ApplicationResourceStatus{ApplicationResourceStatusCreating, ApplicationResourceStatusDeleting, ApplicationResourceStatusFailed, ApplicationResourceStatusInvalid, ApplicationResourceStatusReady, ApplicationResourceStatusUpgrading} +} + +// ApplicationStatus enumerates the values for application status. +type ApplicationStatus string + +const ( + // ApplicationStatusCreating Indicates the application status is creating. The value is 3. + ApplicationStatusCreating ApplicationStatus = "Creating" + // ApplicationStatusDeleting Indicates the application status is deleting. The value is 4. + ApplicationStatusDeleting ApplicationStatus = "Deleting" + // ApplicationStatusFailed Indicates the creation or deletion of application was terminated due to + // persistent failures. Another create/delete request can be accepted to resume a failed application. The + // value is 5. + ApplicationStatusFailed ApplicationStatus = "Failed" + // ApplicationStatusInvalid Indicates the application status is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ApplicationStatusInvalid ApplicationStatus = "Invalid" + // ApplicationStatusReady Indicates the application status is ready. The value is 1. + ApplicationStatusReady ApplicationStatus = "Ready" + // ApplicationStatusUpgrading Indicates the application status is upgrading. The value is 2. + ApplicationStatusUpgrading ApplicationStatus = "Upgrading" +) + +// PossibleApplicationStatusValues returns an array of possible values for the ApplicationStatus const type. +func PossibleApplicationStatusValues() []ApplicationStatus { + return []ApplicationStatus{ApplicationStatusCreating, ApplicationStatusDeleting, ApplicationStatusFailed, ApplicationStatusInvalid, ApplicationStatusReady, ApplicationStatusUpgrading} +} + +// ApplicationTypeDefinitionKind enumerates the values for application type definition kind. +type ApplicationTypeDefinitionKind string + +const ( + // ApplicationTypeDefinitionKindCompose Indicates the application type is defined and created implicitly as + // part of a compose deployment. The value is 2. + ApplicationTypeDefinitionKindCompose ApplicationTypeDefinitionKind = "Compose" + // ApplicationTypeDefinitionKindInvalid Indicates the application type definition kind is invalid. All + // Service Fabric enumerations have the invalid type. The value is 0. + ApplicationTypeDefinitionKindInvalid ApplicationTypeDefinitionKind = "Invalid" + // ApplicationTypeDefinitionKindServiceFabricApplicationPackage Indicates the application type is defined + // and created by a Service Fabric application package provided by the user. The value is 1. + ApplicationTypeDefinitionKindServiceFabricApplicationPackage ApplicationTypeDefinitionKind = "ServiceFabricApplicationPackage" +) + +// PossibleApplicationTypeDefinitionKindValues returns an array of possible values for the ApplicationTypeDefinitionKind const type. +func PossibleApplicationTypeDefinitionKindValues() []ApplicationTypeDefinitionKind { + return []ApplicationTypeDefinitionKind{ApplicationTypeDefinitionKindCompose, ApplicationTypeDefinitionKindInvalid, ApplicationTypeDefinitionKindServiceFabricApplicationPackage} +} + +// ApplicationTypeStatus enumerates the values for application type status. +type ApplicationTypeStatus string + +const ( + // ApplicationTypeStatusAvailable Indicates that the application type is fully provisioned and is available + // for use. An application of this type and version can be created. The value is 2. + ApplicationTypeStatusAvailable ApplicationTypeStatus = "Available" + // ApplicationTypeStatusFailed Indicates that the application type provisioning failed and it is + // unavailable for use. The failure details can be obtained from the application type information query. + // The failed application type information remains in the cluster until it is unprovisioned or + // reprovisioned successfully. The value is 4. + ApplicationTypeStatusFailed ApplicationTypeStatus = "Failed" + // ApplicationTypeStatusInvalid Indicates the application type status is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ApplicationTypeStatusInvalid ApplicationTypeStatus = "Invalid" + // ApplicationTypeStatusProvisioning Indicates that the application type is being provisioned in the + // cluster. The value is 1. + ApplicationTypeStatusProvisioning ApplicationTypeStatus = "Provisioning" + // ApplicationTypeStatusUnprovisioning Indicates that the application type is in process of being + // unprovisioned from the cluster. The value is 3. + ApplicationTypeStatusUnprovisioning ApplicationTypeStatus = "Unprovisioning" +) + +// PossibleApplicationTypeStatusValues returns an array of possible values for the ApplicationTypeStatus const type. +func PossibleApplicationTypeStatusValues() []ApplicationTypeStatus { + return []ApplicationTypeStatus{ApplicationTypeStatusAvailable, ApplicationTypeStatusFailed, ApplicationTypeStatusInvalid, ApplicationTypeStatusProvisioning, ApplicationTypeStatusUnprovisioning} +} + +// BackupEntityKind enumerates the values for backup entity kind. +type BackupEntityKind string + +const ( + // BackupEntityKindApplication Indicates the entity is a Service Fabric application. + BackupEntityKindApplication BackupEntityKind = "Application" + // BackupEntityKindInvalid Indicates an invalid entity kind. All Service Fabric enumerations have the + // invalid type. + BackupEntityKindInvalid BackupEntityKind = "Invalid" + // BackupEntityKindPartition Indicates the entity is a Service Fabric partition. + BackupEntityKindPartition BackupEntityKind = "Partition" + // BackupEntityKindService Indicates the entity is a Service Fabric service. + BackupEntityKindService BackupEntityKind = "Service" +) + +// PossibleBackupEntityKindValues returns an array of possible values for the BackupEntityKind const type. +func PossibleBackupEntityKindValues() []BackupEntityKind { + return []BackupEntityKind{BackupEntityKindApplication, BackupEntityKindInvalid, BackupEntityKindPartition, BackupEntityKindService} +} + +// BackupPolicyScope enumerates the values for backup policy scope. +type BackupPolicyScope string + +const ( + // BackupPolicyScopeApplication Indicates the backup policy is applied at application level. All services + // and partitions of the application inherit this policy unless explicitly overridden at service or + // partition level. + BackupPolicyScopeApplication BackupPolicyScope = "Application" + // BackupPolicyScopeInvalid Indicates an invalid backup policy scope type. All Service Fabric enumerations + // have the invalid type. + BackupPolicyScopeInvalid BackupPolicyScope = "Invalid" + // BackupPolicyScopePartition Indicates the backup policy is applied at partition level. Hence overriding + // any policy which may have applied at partition's service or application level. + BackupPolicyScopePartition BackupPolicyScope = "Partition" + // BackupPolicyScopeService Indicates the backup policy is applied at service level. All partitions of the + // service inherit this policy unless explicitly overridden at partition level. + BackupPolicyScopeService BackupPolicyScope = "Service" +) + +// PossibleBackupPolicyScopeValues returns an array of possible values for the BackupPolicyScope const type. +func PossibleBackupPolicyScopeValues() []BackupPolicyScope { + return []BackupPolicyScope{BackupPolicyScopeApplication, BackupPolicyScopeInvalid, BackupPolicyScopePartition, BackupPolicyScopeService} +} + +// BackupScheduleFrequencyType enumerates the values for backup schedule frequency type. +type BackupScheduleFrequencyType string + +const ( + // BackupScheduleFrequencyTypeDaily Indicates that the time based backup schedule is repeated at a daily + // frequency. + BackupScheduleFrequencyTypeDaily BackupScheduleFrequencyType = "Daily" + // BackupScheduleFrequencyTypeInvalid Indicates an invalid backup schedule frequency type. All Service + // Fabric enumerations have the invalid type. + BackupScheduleFrequencyTypeInvalid BackupScheduleFrequencyType = "Invalid" + // BackupScheduleFrequencyTypeWeekly Indicates that the time based backup schedule is repeated at a weekly + // frequency. + BackupScheduleFrequencyTypeWeekly BackupScheduleFrequencyType = "Weekly" +) + +// PossibleBackupScheduleFrequencyTypeValues returns an array of possible values for the BackupScheduleFrequencyType const type. +func PossibleBackupScheduleFrequencyTypeValues() []BackupScheduleFrequencyType { + return []BackupScheduleFrequencyType{BackupScheduleFrequencyTypeDaily, BackupScheduleFrequencyTypeInvalid, BackupScheduleFrequencyTypeWeekly} +} + +// BackupScheduleKind enumerates the values for backup schedule kind. +type BackupScheduleKind string + +const ( + // BackupScheduleKindFrequencyBased Indicates a frequency-based backup schedule. + BackupScheduleKindFrequencyBased BackupScheduleKind = "FrequencyBased" + // BackupScheduleKindInvalid Indicates an invalid backup schedule kind. All Service Fabric enumerations + // have the invalid type. + BackupScheduleKindInvalid BackupScheduleKind = "Invalid" + // BackupScheduleKindTimeBased Indicates a time-based backup schedule. + BackupScheduleKindTimeBased BackupScheduleKind = "TimeBased" +) + +// PossibleBackupScheduleKindValues returns an array of possible values for the BackupScheduleKind const type. +func PossibleBackupScheduleKindValues() []BackupScheduleKind { + return []BackupScheduleKind{BackupScheduleKindFrequencyBased, BackupScheduleKindInvalid, BackupScheduleKindTimeBased} +} + +// BackupState enumerates the values for backup state. +type BackupState string + +const ( + // BackupStateAccepted Operation has been validated and accepted. Backup is yet to be triggered. + BackupStateAccepted BackupState = "Accepted" + // BackupStateBackupInProgress Backup operation has been triggered and is under process. + BackupStateBackupInProgress BackupState = "BackupInProgress" + // BackupStateFailure Operation completed with failure. + BackupStateFailure BackupState = "Failure" + // BackupStateInvalid Indicates an invalid backup state. All Service Fabric enumerations have the invalid + // type. + BackupStateInvalid BackupState = "Invalid" + // BackupStateSuccess Operation completed with success. + BackupStateSuccess BackupState = "Success" + // BackupStateTimeout Operation timed out. + BackupStateTimeout BackupState = "Timeout" +) + +// PossibleBackupStateValues returns an array of possible values for the BackupState const type. +func PossibleBackupStateValues() []BackupState { + return []BackupState{BackupStateAccepted, BackupStateBackupInProgress, BackupStateFailure, BackupStateInvalid, BackupStateSuccess, BackupStateTimeout} +} + +// BackupStorageKind enumerates the values for backup storage kind. +type BackupStorageKind string + +const ( + // BackupStorageKindAzureBlobStore Indicates Azure blob store to be used as backup storage. + BackupStorageKindAzureBlobStore BackupStorageKind = "AzureBlobStore" + // BackupStorageKindFileShare Indicates file/ SMB share to be used as backup storage. + BackupStorageKindFileShare BackupStorageKind = "FileShare" + // BackupStorageKindInvalid Indicates an invalid backup storage kind. All Service Fabric enumerations have + // the invalid type. + BackupStorageKindInvalid BackupStorageKind = "Invalid" +) + +// PossibleBackupStorageKindValues returns an array of possible values for the BackupStorageKind const type. +func PossibleBackupStorageKindValues() []BackupStorageKind { + return []BackupStorageKind{BackupStorageKindAzureBlobStore, BackupStorageKindFileShare, BackupStorageKindInvalid} +} + +// BackupSuspensionScope enumerates the values for backup suspension scope. +type BackupSuspensionScope string + +const ( + // BackupSuspensionScopeApplication Indicates the backup suspension is applied at application level. All + // services and partitions of the application are hence suspended for backup. + BackupSuspensionScopeApplication BackupSuspensionScope = "Application" + // BackupSuspensionScopeInvalid Indicates an invalid backup suspension scope type also indicating entity is + // not suspended. All Service Fabric enumerations have the invalid type. + BackupSuspensionScopeInvalid BackupSuspensionScope = "Invalid" + // BackupSuspensionScopePartition Indicates the backup suspension is applied at partition level. + BackupSuspensionScopePartition BackupSuspensionScope = "Partition" + // BackupSuspensionScopeService Indicates the backup suspension is applied at service level. All partitions + // of the service are hence suspended for backup. + BackupSuspensionScopeService BackupSuspensionScope = "Service" +) + +// PossibleBackupSuspensionScopeValues returns an array of possible values for the BackupSuspensionScope const type. +func PossibleBackupSuspensionScopeValues() []BackupSuspensionScope { + return []BackupSuspensionScope{BackupSuspensionScopeApplication, BackupSuspensionScopeInvalid, BackupSuspensionScopePartition, BackupSuspensionScopeService} +} + +// BackupType enumerates the values for backup type. +type BackupType string + +const ( + // BackupTypeFull Indicates a full backup. + BackupTypeFull BackupType = "Full" + // BackupTypeIncremental Indicates an incremental backup. A backup chain is comprised of a full backup + // followed by 0 or more incremental backups. + BackupTypeIncremental BackupType = "Incremental" + // BackupTypeInvalid Indicates an invalid backup type. All Service Fabric enumerations have the invalid + // type. + BackupTypeInvalid BackupType = "Invalid" +) + +// PossibleBackupTypeValues returns an array of possible values for the BackupType const type. +func PossibleBackupTypeValues() []BackupType { + return []BackupType{BackupTypeFull, BackupTypeIncremental, BackupTypeInvalid} +} + +// ChaosEventKind enumerates the values for chaos event kind. +type ChaosEventKind string + +const ( + // ChaosEventKindExecutingFaults Indicates a Chaos event that gets generated when Chaos has decided on the + // faults for an iteration. This Chaos event contains the details of the faults as a list of strings. + ChaosEventKindExecutingFaults ChaosEventKind = "ExecutingFaults" + // ChaosEventKindInvalid Indicates an invalid Chaos event kind. All Service Fabric enumerations have the + // invalid type. + ChaosEventKindInvalid ChaosEventKind = "Invalid" + // ChaosEventKindStarted Indicates a Chaos event that gets generated when Chaos is started. + ChaosEventKindStarted ChaosEventKind = "Started" + // ChaosEventKindStopped Indicates a Chaos event that gets generated when Chaos stops because either the + // user issued a stop or the time to run was up. + ChaosEventKindStopped ChaosEventKind = "Stopped" + // ChaosEventKindTestError Indicates a Chaos event that gets generated when an unexpected event has + // occurred in the Chaos engine, for example, due to the cluster snapshot being inconsistent, while + // faulting a faultable entity Chaos found that the entity was already faulted. + ChaosEventKindTestError ChaosEventKind = "TestError" + // ChaosEventKindValidationFailed Indicates a Chaos event that gets generated when the cluster entities do + // not become stable and healthy within ChaosParameters.MaxClusterStabilizationTimeoutInSeconds. + ChaosEventKindValidationFailed ChaosEventKind = "ValidationFailed" + // ChaosEventKindWaiting Indicates a Chaos event that gets generated when Chaos is waiting for the cluster + // to become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish. + ChaosEventKindWaiting ChaosEventKind = "Waiting" +) + +// PossibleChaosEventKindValues returns an array of possible values for the ChaosEventKind const type. +func PossibleChaosEventKindValues() []ChaosEventKind { + return []ChaosEventKind{ChaosEventKindExecutingFaults, ChaosEventKindInvalid, ChaosEventKindStarted, ChaosEventKindStopped, ChaosEventKindTestError, ChaosEventKindValidationFailed, ChaosEventKindWaiting} +} + +// ChaosScheduleStatus enumerates the values for chaos schedule status. +type ChaosScheduleStatus string + +const ( + // ChaosScheduleStatusActive Indicates that the schedule is active and is being used to schedule runs of + // Chaos. The value is two. + ChaosScheduleStatusActive ChaosScheduleStatus = "Active" + // ChaosScheduleStatusExpired Indicates that the schedule is expired and will no longer be used to schedule + // runs of Chaos. The value is three. + ChaosScheduleStatusExpired ChaosScheduleStatus = "Expired" + // ChaosScheduleStatusInvalid Indicates an invalid Chaos Schedule status. All Service Fabric enumerations + // have the invalid type. The valus is zero. + ChaosScheduleStatusInvalid ChaosScheduleStatus = "Invalid" + // ChaosScheduleStatusPending Indicates that the schedule is pending and is not yet being used to schedule + // runs of Chaos but will be used when the start time is passed. The value is four. + ChaosScheduleStatusPending ChaosScheduleStatus = "Pending" + // ChaosScheduleStatusStopped Indicates that the schedule is stopped and not being used to schedule runs of + // chaos. The value is one. + ChaosScheduleStatusStopped ChaosScheduleStatus = "Stopped" +) + +// PossibleChaosScheduleStatusValues returns an array of possible values for the ChaosScheduleStatus const type. +func PossibleChaosScheduleStatusValues() []ChaosScheduleStatus { + return []ChaosScheduleStatus{ChaosScheduleStatusActive, ChaosScheduleStatusExpired, ChaosScheduleStatusInvalid, ChaosScheduleStatusPending, ChaosScheduleStatusStopped} +} + +// ChaosStatus enumerates the values for chaos status. +type ChaosStatus string + +const ( + // ChaosStatusInvalid Indicates an invalid Chaos status. All Service Fabric enumerations have the invalid + // type. The valus is zero. + ChaosStatusInvalid ChaosStatus = "Invalid" + // ChaosStatusRunning Indicates that Chaos is not stopped. The value is one. + ChaosStatusRunning ChaosStatus = "Running" + // ChaosStatusStopped Indicates that Chaos is not scheduling further faults. The value is two. + ChaosStatusStopped ChaosStatus = "Stopped" +) + +// PossibleChaosStatusValues returns an array of possible values for the ChaosStatus const type. +func PossibleChaosStatusValues() []ChaosStatus { + return []ChaosStatus{ChaosStatusInvalid, ChaosStatusRunning, ChaosStatusStopped} +} + +// ComposeDeploymentStatus enumerates the values for compose deployment status. +type ComposeDeploymentStatus string + +const ( + // ComposeDeploymentStatusCreating Indicates that the compose deployment is being created in background. + // The value is 2. + ComposeDeploymentStatusCreating ComposeDeploymentStatus = "Creating" + // ComposeDeploymentStatusDeleting Indicates that the compose deployment is being deleted in background. + // The value is 5. + ComposeDeploymentStatusDeleting ComposeDeploymentStatus = "Deleting" + // ComposeDeploymentStatusFailed Indicates that the compose deployment was terminated due to persistent + // failures. The value is 6. + ComposeDeploymentStatusFailed ComposeDeploymentStatus = "Failed" + // ComposeDeploymentStatusInvalid Indicates that the compose deployment status is invalid. The value is + // zero. + ComposeDeploymentStatusInvalid ComposeDeploymentStatus = "Invalid" + // ComposeDeploymentStatusProvisioning Indicates that the compose deployment is being provisioned in + // background. The value is 1. + ComposeDeploymentStatusProvisioning ComposeDeploymentStatus = "Provisioning" + // ComposeDeploymentStatusReady Indicates that the compose deployment has been successfully created or + // upgraded. The value is 3. + ComposeDeploymentStatusReady ComposeDeploymentStatus = "Ready" + // ComposeDeploymentStatusUnprovisioning Indicates that the compose deployment is being unprovisioned in + // background. The value is 4. + ComposeDeploymentStatusUnprovisioning ComposeDeploymentStatus = "Unprovisioning" + // ComposeDeploymentStatusUpgrading Indicates that the compose deployment is being upgraded in the + // background. The value is 7. + ComposeDeploymentStatusUpgrading ComposeDeploymentStatus = "Upgrading" +) + +// PossibleComposeDeploymentStatusValues returns an array of possible values for the ComposeDeploymentStatus const type. +func PossibleComposeDeploymentStatusValues() []ComposeDeploymentStatus { + return []ComposeDeploymentStatus{ComposeDeploymentStatusCreating, ComposeDeploymentStatusDeleting, ComposeDeploymentStatusFailed, ComposeDeploymentStatusInvalid, ComposeDeploymentStatusProvisioning, ComposeDeploymentStatusReady, ComposeDeploymentStatusUnprovisioning, ComposeDeploymentStatusUpgrading} +} + +// ComposeDeploymentUpgradeState enumerates the values for compose deployment upgrade state. +type ComposeDeploymentUpgradeState string + +const ( + // ComposeDeploymentUpgradeStateFailed The upgrade has failed and is unable to execute FailureAction. The + // value is 9. + ComposeDeploymentUpgradeStateFailed ComposeDeploymentUpgradeState = "Failed" + // ComposeDeploymentUpgradeStateInvalid Indicates the upgrade state is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ComposeDeploymentUpgradeStateInvalid ComposeDeploymentUpgradeState = "Invalid" + // ComposeDeploymentUpgradeStateProvisioningTarget The upgrade is in the progress of provisioning target + // application type version. The value is 1. + ComposeDeploymentUpgradeStateProvisioningTarget ComposeDeploymentUpgradeState = "ProvisioningTarget" + // ComposeDeploymentUpgradeStateRollingBackCompleted The upgrade has finished rolling back. The value is 8. + ComposeDeploymentUpgradeStateRollingBackCompleted ComposeDeploymentUpgradeState = "RollingBackCompleted" + // ComposeDeploymentUpgradeStateRollingBackInProgress The upgrade is rolling back to the previous version + // but is not complete yet. The value is 6. + ComposeDeploymentUpgradeStateRollingBackInProgress ComposeDeploymentUpgradeState = "RollingBackInProgress" + // ComposeDeploymentUpgradeStateRollingForwardCompleted The upgrade has finished rolling forward. The value + // is 5. + ComposeDeploymentUpgradeStateRollingForwardCompleted ComposeDeploymentUpgradeState = "RollingForwardCompleted" + // ComposeDeploymentUpgradeStateRollingForwardInProgress The upgrade is rolling forward to the target + // version but is not complete yet. The value is 2. + ComposeDeploymentUpgradeStateRollingForwardInProgress ComposeDeploymentUpgradeState = "RollingForwardInProgress" + // ComposeDeploymentUpgradeStateRollingForwardPending The current upgrade domain has finished upgrading. + // The overall upgrade is waiting for an explicit move next request in UnmonitoredManual mode or performing + // health checks in Monitored mode. The value is 3 + ComposeDeploymentUpgradeStateRollingForwardPending ComposeDeploymentUpgradeState = "RollingForwardPending" + // ComposeDeploymentUpgradeStateUnprovisioningCurrent The upgrade is in the progress of unprovisioning + // current application type version and rolling forward to the target version is completed. The value is 4. + ComposeDeploymentUpgradeStateUnprovisioningCurrent ComposeDeploymentUpgradeState = "UnprovisioningCurrent" + // ComposeDeploymentUpgradeStateUnprovisioningTarget The upgrade is in the progress of unprovisioning + // target application type version and rolling back to the current version is completed. The value is 7. + ComposeDeploymentUpgradeStateUnprovisioningTarget ComposeDeploymentUpgradeState = "UnprovisioningTarget" +) + +// PossibleComposeDeploymentUpgradeStateValues returns an array of possible values for the ComposeDeploymentUpgradeState const type. +func PossibleComposeDeploymentUpgradeStateValues() []ComposeDeploymentUpgradeState { + return []ComposeDeploymentUpgradeState{ComposeDeploymentUpgradeStateFailed, ComposeDeploymentUpgradeStateInvalid, ComposeDeploymentUpgradeStateProvisioningTarget, ComposeDeploymentUpgradeStateRollingBackCompleted, ComposeDeploymentUpgradeStateRollingBackInProgress, ComposeDeploymentUpgradeStateRollingForwardCompleted, ComposeDeploymentUpgradeStateRollingForwardInProgress, ComposeDeploymentUpgradeStateRollingForwardPending, ComposeDeploymentUpgradeStateUnprovisioningCurrent, ComposeDeploymentUpgradeStateUnprovisioningTarget} +} + +// CreateFabricDump enumerates the values for create fabric dump. +type CreateFabricDump string + +const ( + // False ... + False CreateFabricDump = "False" + // True ... + True CreateFabricDump = "True" +) + +// PossibleCreateFabricDumpValues returns an array of possible values for the CreateFabricDump const type. +func PossibleCreateFabricDumpValues() []CreateFabricDump { + return []CreateFabricDump{False, True} +} + +// DataLossMode enumerates the values for data loss mode. +type DataLossMode string + +const ( + // DataLossModeFullDataLoss FullDataLoss option will drop all the replicas which means that all the data + // will be lost. + DataLossModeFullDataLoss DataLossMode = "FullDataLoss" + // DataLossModeInvalid Reserved. Do not pass into API. + DataLossModeInvalid DataLossMode = "Invalid" + // DataLossModePartialDataLoss PartialDataLoss option will cause a quorum of replicas to go down, + // triggering an OnDataLoss event in the system for the given partition. + DataLossModePartialDataLoss DataLossMode = "PartialDataLoss" +) + +// PossibleDataLossModeValues returns an array of possible values for the DataLossMode const type. +func PossibleDataLossModeValues() []DataLossMode { + return []DataLossMode{DataLossModeFullDataLoss, DataLossModeInvalid, DataLossModePartialDataLoss} +} + +// DayOfWeek enumerates the values for day of week. +type DayOfWeek string + +const ( + // Friday Indicates the Day referred is Friday. + Friday DayOfWeek = "Friday" + // Monday Indicates the Day referred is Monday. + Monday DayOfWeek = "Monday" + // Saturday Indicates the Day referred is Saturday. + Saturday DayOfWeek = "Saturday" + // Sunday Indicates the Day referred is Sunday. + Sunday DayOfWeek = "Sunday" + // Thursday Indicates the Day referred is Thursday. + Thursday DayOfWeek = "Thursday" + // Tuesday Indicates the Day referred is Tuesday. + Tuesday DayOfWeek = "Tuesday" + // Wednesday Indicates the Day referred is Wednesday. + Wednesday DayOfWeek = "Wednesday" +) + +// PossibleDayOfWeekValues returns an array of possible values for the DayOfWeek const type. +func PossibleDayOfWeekValues() []DayOfWeek { + return []DayOfWeek{Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday} +} + +// DeactivationIntent enumerates the values for deactivation intent. +type DeactivationIntent string + +const ( + // Pause Indicates that the node should be paused. The value is 1. + Pause DeactivationIntent = "Pause" + // RemoveData Indicates the intent is for the node to remove data. The value is 3. + RemoveData DeactivationIntent = "RemoveData" + // Restart Indicates that the intent is for the node to be restarted after a short period of time. The + // value is 2. + Restart DeactivationIntent = "Restart" +) + +// PossibleDeactivationIntentValues returns an array of possible values for the DeactivationIntent const type. +func PossibleDeactivationIntentValues() []DeactivationIntent { + return []DeactivationIntent{Pause, RemoveData, Restart} +} + +// DeployedApplicationStatus enumerates the values for deployed application status. +type DeployedApplicationStatus string + +const ( + // DeployedApplicationStatusActivating Indicates that the package is activating. The value is 2. + DeployedApplicationStatusActivating DeployedApplicationStatus = "Activating" + // DeployedApplicationStatusActive Indicates that the package is active. The value is 3. + DeployedApplicationStatusActive DeployedApplicationStatus = "Active" + // DeployedApplicationStatusDeactivating Indicates that the package is deactivating. The value is 5. + DeployedApplicationStatusDeactivating DeployedApplicationStatus = "Deactivating" + // DeployedApplicationStatusDownloading Indicates that the package is downloading from the ImageStore. The + // value is 1. + DeployedApplicationStatusDownloading DeployedApplicationStatus = "Downloading" + // DeployedApplicationStatusInvalid Indicates that deployment status is not valid. All Service Fabric + // enumerations have the invalid type. The value is zero. + DeployedApplicationStatusInvalid DeployedApplicationStatus = "Invalid" + // DeployedApplicationStatusUpgrading Indicates that the package is upgrading. The value is 4. + DeployedApplicationStatusUpgrading DeployedApplicationStatus = "Upgrading" +) + +// PossibleDeployedApplicationStatusValues returns an array of possible values for the DeployedApplicationStatus const type. +func PossibleDeployedApplicationStatusValues() []DeployedApplicationStatus { + return []DeployedApplicationStatus{DeployedApplicationStatusActivating, DeployedApplicationStatusActive, DeployedApplicationStatusDeactivating, DeployedApplicationStatusDownloading, DeployedApplicationStatusInvalid, DeployedApplicationStatusUpgrading} +} + +// DeploymentStatus enumerates the values for deployment status. +type DeploymentStatus string + +const ( + // DeploymentStatusActivating Indicates the application or service package is being activated. The value is + // 2. + DeploymentStatusActivating DeploymentStatus = "Activating" + // DeploymentStatusActive Indicates the application or service package is active the node. The value is 3. + DeploymentStatusActive DeploymentStatus = "Active" + // DeploymentStatusDeactivating Indicates the application or service package is being deactivated. The + // value is 5. + DeploymentStatusDeactivating DeploymentStatus = "Deactivating" + // DeploymentStatusDownloading Indicates the application or service package is being downloaded to the node + // from the ImageStore. The value is 1. + DeploymentStatusDownloading DeploymentStatus = "Downloading" + // DeploymentStatusInvalid Indicates status of the application or service package is not known or invalid. + // The value is 0. + DeploymentStatusInvalid DeploymentStatus = "Invalid" + // DeploymentStatusUpgrading Indicates the application or service package is being upgraded. The value is + // 4. + DeploymentStatusUpgrading DeploymentStatus = "Upgrading" +) + +// PossibleDeploymentStatusValues returns an array of possible values for the DeploymentStatus const type. +func PossibleDeploymentStatusValues() []DeploymentStatus { + return []DeploymentStatus{DeploymentStatusActivating, DeploymentStatusActive, DeploymentStatusDeactivating, DeploymentStatusDownloading, DeploymentStatusInvalid, DeploymentStatusUpgrading} +} + +// DiagnosticsSinkKind enumerates the values for diagnostics sink kind. +type DiagnosticsSinkKind string + +const ( + // DiagnosticsSinkKindAzureInternalMonitoringPipeline Diagnostics settings for Geneva. + DiagnosticsSinkKindAzureInternalMonitoringPipeline DiagnosticsSinkKind = "AzureInternalMonitoringPipeline" + // DiagnosticsSinkKindInvalid Indicates an invalid sink kind. All Service Fabric enumerations have the + // invalid type. + DiagnosticsSinkKindInvalid DiagnosticsSinkKind = "Invalid" +) + +// PossibleDiagnosticsSinkKindValues returns an array of possible values for the DiagnosticsSinkKind const type. +func PossibleDiagnosticsSinkKindValues() []DiagnosticsSinkKind { + return []DiagnosticsSinkKind{DiagnosticsSinkKindAzureInternalMonitoringPipeline, DiagnosticsSinkKindInvalid} +} + +// EntityKind enumerates the values for entity kind. +type EntityKind string + +const ( + // EntityKindApplication Indicates the entity is a Service Fabric application. The value is 4. + EntityKindApplication EntityKind = "Application" + // EntityKindCluster Indicates the entity is a Service Fabric cluster. The value is 8. + EntityKindCluster EntityKind = "Cluster" + // EntityKindDeployedApplication Indicates the entity is a Service Fabric deployed application. The value + // is 6. + EntityKindDeployedApplication EntityKind = "DeployedApplication" + // EntityKindDeployedServicePackage Indicates the entity is a Service Fabric deployed service package. The + // value is 7. + EntityKindDeployedServicePackage EntityKind = "DeployedServicePackage" + // EntityKindInvalid Indicates an invalid entity kind. All Service Fabric enumerations have the invalid + // type. The value is zero. + EntityKindInvalid EntityKind = "Invalid" + // EntityKindNode Indicates the entity is a Service Fabric node. The value is 1. + EntityKindNode EntityKind = "Node" + // EntityKindPartition Indicates the entity is a Service Fabric partition. The value is 2. + EntityKindPartition EntityKind = "Partition" + // EntityKindReplica Indicates the entity is a Service Fabric replica. The value is 5. + EntityKindReplica EntityKind = "Replica" + // EntityKindService Indicates the entity is a Service Fabric service. The value is 3. + EntityKindService EntityKind = "Service" +) + +// PossibleEntityKindValues returns an array of possible values for the EntityKind const type. +func PossibleEntityKindValues() []EntityKind { + return []EntityKind{EntityKindApplication, EntityKindCluster, EntityKindDeployedApplication, EntityKindDeployedServicePackage, EntityKindInvalid, EntityKindNode, EntityKindPartition, EntityKindReplica, EntityKindService} +} + +// EntityKindBasicBackupEntity enumerates the values for entity kind basic backup entity. +type EntityKindBasicBackupEntity string + +const ( + // EntityKindApplication1 ... + EntityKindApplication1 EntityKindBasicBackupEntity = "Application" + // EntityKindBackupEntity ... + EntityKindBackupEntity EntityKindBasicBackupEntity = "BackupEntity" + // EntityKindPartition1 ... + EntityKindPartition1 EntityKindBasicBackupEntity = "Partition" + // EntityKindService1 ... + EntityKindService1 EntityKindBasicBackupEntity = "Service" +) + +// PossibleEntityKindBasicBackupEntityValues returns an array of possible values for the EntityKindBasicBackupEntity const type. +func PossibleEntityKindBasicBackupEntityValues() []EntityKindBasicBackupEntity { + return []EntityKindBasicBackupEntity{EntityKindApplication1, EntityKindBackupEntity, EntityKindPartition1, EntityKindService1} +} + +// EntryPointStatus enumerates the values for entry point status. +type EntryPointStatus string + +const ( + // EntryPointStatusInvalid Indicates status of entry point is not known or invalid. The value is 0. + EntryPointStatusInvalid EntryPointStatus = "Invalid" + // EntryPointStatusPending Indicates the entry point is scheduled to be started. The value is 1. + EntryPointStatusPending EntryPointStatus = "Pending" + // EntryPointStatusStarted Indicates the entry point was started successfully and is running. The value is + // 3. + EntryPointStatusStarted EntryPointStatus = "Started" + // EntryPointStatusStarting Indicates the entry point is being started. The value is 2. + EntryPointStatusStarting EntryPointStatus = "Starting" + // EntryPointStatusStopped Indicates the entry point is not running. The value is 5. + EntryPointStatusStopped EntryPointStatus = "Stopped" + // EntryPointStatusStopping Indicates the entry point is being stopped. The value is 4. + EntryPointStatusStopping EntryPointStatus = "Stopping" +) + +// PossibleEntryPointStatusValues returns an array of possible values for the EntryPointStatus const type. +func PossibleEntryPointStatusValues() []EntryPointStatus { + return []EntryPointStatus{EntryPointStatusInvalid, EntryPointStatusPending, EntryPointStatusStarted, EntryPointStatusStarting, EntryPointStatusStopped, EntryPointStatusStopping} +} + +// FabricErrorCodes enumerates the values for fabric error codes. +type FabricErrorCodes string + +const ( + // EABORT ... + EABORT FabricErrorCodes = "E_ABORT" + // EFAIL ... + EFAIL FabricErrorCodes = "E_FAIL" + // EINVALIDARG ... + EINVALIDARG FabricErrorCodes = "E_INVALIDARG" + // FABRICEAPPLICATIONALREADYEXISTS ... + FABRICEAPPLICATIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_APPLICATION_ALREADY_EXISTS" + // FABRICEAPPLICATIONALREADYINTARGETVERSION ... + FABRICEAPPLICATIONALREADYINTARGETVERSION FabricErrorCodes = "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION" + // FABRICEAPPLICATIONNOTFOUND ... + FABRICEAPPLICATIONNOTFOUND FabricErrorCodes = "FABRIC_E_APPLICATION_NOT_FOUND" + // FABRICEAPPLICATIONNOTUPGRADING ... + FABRICEAPPLICATIONNOTUPGRADING FabricErrorCodes = "FABRIC_E_APPLICATION_NOT_UPGRADING" + // FABRICEAPPLICATIONTYPEALREADYEXISTS ... + FABRICEAPPLICATIONTYPEALREADYEXISTS FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS" + // FABRICEAPPLICATIONTYPEINUSE ... + FABRICEAPPLICATIONTYPEINUSE FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_IN_USE" + // FABRICEAPPLICATIONTYPENOTFOUND ... + FABRICEAPPLICATIONTYPENOTFOUND FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_NOT_FOUND" + // FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS ... + FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS" + // FABRICEAPPLICATIONUPGRADEINPROGRESS ... + FABRICEAPPLICATIONUPGRADEINPROGRESS FabricErrorCodes = "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS" + // FABRICEAPPLICATIONUPGRADEVALIDATIONERROR ... + FABRICEAPPLICATIONUPGRADEVALIDATIONERROR FabricErrorCodes = "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR" + // FABRICEBACKUPINPROGRESS ... + FABRICEBACKUPINPROGRESS FabricErrorCodes = "FABRIC_E_BACKUP_IN_PROGRESS" + // FABRICEBACKUPISENABLED ... + FABRICEBACKUPISENABLED FabricErrorCodes = "FABRIC_E_BACKUP_IS_ENABLED" + // FABRICEBACKUPNOTENABLED ... + FABRICEBACKUPNOTENABLED FabricErrorCodes = "FABRIC_E_BACKUP_NOT_ENABLED" + // FABRICEBACKUPPOLICYALREADYEXISTING ... + FABRICEBACKUPPOLICYALREADYEXISTING FabricErrorCodes = "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING" + // FABRICEBACKUPPOLICYNOTEXISTING ... + FABRICEBACKUPPOLICYNOTEXISTING FabricErrorCodes = "FABRIC_E_BACKUP_POLICY_NOT_EXISTING" + // FABRICECOMMUNICATIONERROR ... + FABRICECOMMUNICATIONERROR FabricErrorCodes = "FABRIC_E_COMMUNICATION_ERROR" + // FABRICECONFIGURATIONPARAMETERNOTFOUND ... + FABRICECONFIGURATIONPARAMETERNOTFOUND FabricErrorCodes = "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND" + // FABRICECONFIGURATIONSECTIONNOTFOUND ... + FABRICECONFIGURATIONSECTIONNOTFOUND FabricErrorCodes = "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND" + // FABRICEDIRECTORYNOTFOUND ... + FABRICEDIRECTORYNOTFOUND FabricErrorCodes = "FABRIC_E_DIRECTORY_NOT_FOUND" + // FABRICEENUMERATIONCOMPLETED ... + FABRICEENUMERATIONCOMPLETED FabricErrorCodes = "FABRIC_E_ENUMERATION_COMPLETED" + // FABRICEFABRICALREADYINTARGETVERSION ... + FABRICEFABRICALREADYINTARGETVERSION FabricErrorCodes = "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION" + // FABRICEFABRICNOTUPGRADING ... + FABRICEFABRICNOTUPGRADING FabricErrorCodes = "FABRIC_E_FABRIC_NOT_UPGRADING" + // FABRICEFABRICUPGRADEINPROGRESS ... + FABRICEFABRICUPGRADEINPROGRESS FabricErrorCodes = "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS" + // FABRICEFABRICUPGRADEVALIDATIONERROR ... + FABRICEFABRICUPGRADEVALIDATIONERROR FabricErrorCodes = "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR" + // FABRICEFABRICVERSIONALREADYEXISTS ... + FABRICEFABRICVERSIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS" + // FABRICEFABRICVERSIONINUSE ... + FABRICEFABRICVERSIONINUSE FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_IN_USE" + // FABRICEFABRICVERSIONNOTFOUND ... + FABRICEFABRICVERSIONNOTFOUND FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_NOT_FOUND" + // FABRICEFAULTANALYSISSERVICENOTEXISTING ... + FABRICEFAULTANALYSISSERVICENOTEXISTING FabricErrorCodes = "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING" + // FABRICEFILENOTFOUND ... + FABRICEFILENOTFOUND FabricErrorCodes = "FABRIC_E_FILE_NOT_FOUND" + // FABRICEHEALTHENTITYNOTFOUND ... + FABRICEHEALTHENTITYNOTFOUND FabricErrorCodes = "FABRIC_E_HEALTH_ENTITY_NOT_FOUND" + // FABRICEHEALTHSTALEREPORT ... + FABRICEHEALTHSTALEREPORT FabricErrorCodes = "FABRIC_E_HEALTH_STALE_REPORT" + // FABRICEIMAGEBUILDERVALIDATIONERROR ... + FABRICEIMAGEBUILDERVALIDATIONERROR FabricErrorCodes = "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR" + // FABRICEINSTANCEIDMISMATCH ... + FABRICEINSTANCEIDMISMATCH FabricErrorCodes = "FABRIC_E_INSTANCE_ID_MISMATCH" + // FABRICEINVALIDADDRESS ... + FABRICEINVALIDADDRESS FabricErrorCodes = "FABRIC_E_INVALID_ADDRESS" + // FABRICEINVALIDATOMICGROUP ... + FABRICEINVALIDATOMICGROUP FabricErrorCodes = "FABRIC_E_INVALID_ATOMIC_GROUP" + // FABRICEINVALIDCONFIGURATION ... + FABRICEINVALIDCONFIGURATION FabricErrorCodes = "FABRIC_E_INVALID_CONFIGURATION" + // FABRICEINVALIDFORSTATELESSSERVICES ... + FABRICEINVALIDFORSTATELESSSERVICES FabricErrorCodes = "FABRIC_E_INVALID_FOR_STATELESS_SERVICES" + // FABRICEINVALIDNAMEURI ... + FABRICEINVALIDNAMEURI FabricErrorCodes = "FABRIC_E_INVALID_NAME_URI" + // FABRICEINVALIDPARTITIONKEY ... + FABRICEINVALIDPARTITIONKEY FabricErrorCodes = "FABRIC_E_INVALID_PARTITION_KEY" + // FABRICEINVALIDSERVICESCALINGPOLICY ... + FABRICEINVALIDSERVICESCALINGPOLICY FabricErrorCodes = "FABRIC_E_INVALID_SERVICE_SCALING_POLICY" + // FABRICEKEYNOTFOUND ... + FABRICEKEYNOTFOUND FabricErrorCodes = "FABRIC_E_KEY_NOT_FOUND" + // FABRICEKEYTOOLARGE ... + FABRICEKEYTOOLARGE FabricErrorCodes = "FABRIC_E_KEY_TOO_LARGE" + // FABRICENAMEALREADYEXISTS ... + FABRICENAMEALREADYEXISTS FabricErrorCodes = "FABRIC_E_NAME_ALREADY_EXISTS" + // FABRICENAMEDOESNOTEXIST ... + FABRICENAMEDOESNOTEXIST FabricErrorCodes = "FABRIC_E_NAME_DOES_NOT_EXIST" + // FABRICENAMENOTEMPTY ... + FABRICENAMENOTEMPTY FabricErrorCodes = "FABRIC_E_NAME_NOT_EMPTY" + // FABRICENODEHASNOTSTOPPEDYET ... + FABRICENODEHASNOTSTOPPEDYET FabricErrorCodes = "FABRIC_E_NODE_HAS_NOT_STOPPED_YET" + // FABRICENODEISUP ... + FABRICENODEISUP FabricErrorCodes = "FABRIC_E_NODE_IS_UP" + // FABRICENODENOTFOUND ... + FABRICENODENOTFOUND FabricErrorCodes = "FABRIC_E_NODE_NOT_FOUND" + // FABRICENOTPRIMARY ... + FABRICENOTPRIMARY FabricErrorCodes = "FABRIC_E_NOT_PRIMARY" + // FABRICENOTREADY ... + FABRICENOTREADY FabricErrorCodes = "FABRIC_E_NOT_READY" + // FABRICENOWRITEQUORUM ... + FABRICENOWRITEQUORUM FabricErrorCodes = "FABRIC_E_NO_WRITE_QUORUM" + // FABRICEOPERATIONNOTCOMPLETE ... + FABRICEOPERATIONNOTCOMPLETE FabricErrorCodes = "FABRIC_E_OPERATION_NOT_COMPLETE" + // FABRICEPARTITIONNOTFOUND ... + FABRICEPARTITIONNOTFOUND FabricErrorCodes = "FABRIC_E_PARTITION_NOT_FOUND" + // FABRICEPATHTOOLONG ... + FABRICEPATHTOOLONG FabricErrorCodes = "FABRIC_E_PATH_TOO_LONG" + // FABRICEPROPERTYCHECKFAILED ... + FABRICEPROPERTYCHECKFAILED FabricErrorCodes = "FABRIC_E_PROPERTY_CHECK_FAILED" + // FABRICEPROPERTYDOESNOTEXIST ... + FABRICEPROPERTYDOESNOTEXIST FabricErrorCodes = "FABRIC_E_PROPERTY_DOES_NOT_EXIST" + // FABRICERECONFIGURATIONPENDING ... + FABRICERECONFIGURATIONPENDING FabricErrorCodes = "FABRIC_E_RECONFIGURATION_PENDING" + // FABRICEREPLICADOESNOTEXIST ... + FABRICEREPLICADOESNOTEXIST FabricErrorCodes = "FABRIC_E_REPLICA_DOES_NOT_EXIST" + // FABRICERESTOREINPROGRESS ... + FABRICERESTOREINPROGRESS FabricErrorCodes = "FABRIC_E_RESTORE_IN_PROGRESS" + // FABRICERESTORESOURCETARGETPARTITIONMISMATCH ... + FABRICERESTORESOURCETARGETPARTITIONMISMATCH FabricErrorCodes = "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH" + // FABRICESEQUENCENUMBERCHECKFAILED ... + FABRICESEQUENCENUMBERCHECKFAILED FabricErrorCodes = "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED" + // FABRICESERVICEAFFINITYCHAINNOTSUPPORTED ... + FABRICESERVICEAFFINITYCHAINNOTSUPPORTED FabricErrorCodes = "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED" + // FABRICESERVICEALREADYEXISTS ... + FABRICESERVICEALREADYEXISTS FabricErrorCodes = "FABRIC_E_SERVICE_ALREADY_EXISTS" + // FABRICESERVICEDOESNOTEXIST ... + FABRICESERVICEDOESNOTEXIST FabricErrorCodes = "FABRIC_E_SERVICE_DOES_NOT_EXIST" + // FABRICESERVICEGROUPALREADYEXISTS ... + FABRICESERVICEGROUPALREADYEXISTS FabricErrorCodes = "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS" + // FABRICESERVICEGROUPDOESNOTEXIST ... + FABRICESERVICEGROUPDOESNOTEXIST FabricErrorCodes = "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST" + // FABRICESERVICEMANIFESTNOTFOUND ... + FABRICESERVICEMANIFESTNOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND" + // FABRICESERVICEMETADATAMISMATCH ... + FABRICESERVICEMETADATAMISMATCH FabricErrorCodes = "FABRIC_E_SERVICE_METADATA_MISMATCH" + // FABRICESERVICEOFFLINE ... + FABRICESERVICEOFFLINE FabricErrorCodes = "FABRIC_E_SERVICE_OFFLINE" + // FABRICESERVICETYPEMISMATCH ... + FABRICESERVICETYPEMISMATCH FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_MISMATCH" + // FABRICESERVICETYPENOTFOUND ... + FABRICESERVICETYPENOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_NOT_FOUND" + // FABRICESERVICETYPETEMPLATENOTFOUND ... + FABRICESERVICETYPETEMPLATENOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND" + // FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS ... + FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS" + // FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND ... + FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND FabricErrorCodes = "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND" + // FABRICETIMEOUT ... + FABRICETIMEOUT FabricErrorCodes = "FABRIC_E_TIMEOUT" + // FABRICEVALUEEMPTY ... + FABRICEVALUEEMPTY FabricErrorCodes = "FABRIC_E_VALUE_EMPTY" + // FABRICEVALUETOOLARGE ... + FABRICEVALUETOOLARGE FabricErrorCodes = "FABRIC_E_VALUE_TOO_LARGE" + // FABRICEVOLUMEALREADYEXISTS ... + FABRICEVOLUMEALREADYEXISTS FabricErrorCodes = "FABRIC_E_VOLUME_ALREADY_EXISTS" + // FABRICEVOLUMENOTFOUND ... + FABRICEVOLUMENOTFOUND FabricErrorCodes = "FABRIC_E_VOLUME_NOT_FOUND" + // SerializationError ... + SerializationError FabricErrorCodes = "SerializationError" +) + +// PossibleFabricErrorCodesValues returns an array of possible values for the FabricErrorCodes const type. +func PossibleFabricErrorCodesValues() []FabricErrorCodes { + return []FabricErrorCodes{EABORT, EFAIL, EINVALIDARG, FABRICEAPPLICATIONALREADYEXISTS, FABRICEAPPLICATIONALREADYINTARGETVERSION, FABRICEAPPLICATIONNOTFOUND, FABRICEAPPLICATIONNOTUPGRADING, FABRICEAPPLICATIONTYPEALREADYEXISTS, FABRICEAPPLICATIONTYPEINUSE, FABRICEAPPLICATIONTYPENOTFOUND, FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS, FABRICEAPPLICATIONUPGRADEINPROGRESS, FABRICEAPPLICATIONUPGRADEVALIDATIONERROR, FABRICEBACKUPINPROGRESS, FABRICEBACKUPISENABLED, FABRICEBACKUPNOTENABLED, FABRICEBACKUPPOLICYALREADYEXISTING, FABRICEBACKUPPOLICYNOTEXISTING, FABRICECOMMUNICATIONERROR, FABRICECONFIGURATIONPARAMETERNOTFOUND, FABRICECONFIGURATIONSECTIONNOTFOUND, FABRICEDIRECTORYNOTFOUND, FABRICEENUMERATIONCOMPLETED, FABRICEFABRICALREADYINTARGETVERSION, FABRICEFABRICNOTUPGRADING, FABRICEFABRICUPGRADEINPROGRESS, FABRICEFABRICUPGRADEVALIDATIONERROR, FABRICEFABRICVERSIONALREADYEXISTS, FABRICEFABRICVERSIONINUSE, FABRICEFABRICVERSIONNOTFOUND, FABRICEFAULTANALYSISSERVICENOTEXISTING, FABRICEFILENOTFOUND, FABRICEHEALTHENTITYNOTFOUND, FABRICEHEALTHSTALEREPORT, FABRICEIMAGEBUILDERVALIDATIONERROR, FABRICEINSTANCEIDMISMATCH, FABRICEINVALIDADDRESS, FABRICEINVALIDATOMICGROUP, FABRICEINVALIDCONFIGURATION, FABRICEINVALIDFORSTATELESSSERVICES, FABRICEINVALIDNAMEURI, FABRICEINVALIDPARTITIONKEY, FABRICEINVALIDSERVICESCALINGPOLICY, FABRICEKEYNOTFOUND, FABRICEKEYTOOLARGE, FABRICENAMEALREADYEXISTS, FABRICENAMEDOESNOTEXIST, FABRICENAMENOTEMPTY, FABRICENODEHASNOTSTOPPEDYET, FABRICENODEISUP, FABRICENODENOTFOUND, FABRICENOTPRIMARY, FABRICENOTREADY, FABRICENOWRITEQUORUM, FABRICEOPERATIONNOTCOMPLETE, FABRICEPARTITIONNOTFOUND, FABRICEPATHTOOLONG, FABRICEPROPERTYCHECKFAILED, FABRICEPROPERTYDOESNOTEXIST, FABRICERECONFIGURATIONPENDING, FABRICEREPLICADOESNOTEXIST, FABRICERESTOREINPROGRESS, FABRICERESTORESOURCETARGETPARTITIONMISMATCH, FABRICESEQUENCENUMBERCHECKFAILED, FABRICESERVICEAFFINITYCHAINNOTSUPPORTED, FABRICESERVICEALREADYEXISTS, FABRICESERVICEDOESNOTEXIST, FABRICESERVICEGROUPALREADYEXISTS, FABRICESERVICEGROUPDOESNOTEXIST, FABRICESERVICEMANIFESTNOTFOUND, FABRICESERVICEMETADATAMISMATCH, FABRICESERVICEOFFLINE, FABRICESERVICETYPEMISMATCH, FABRICESERVICETYPENOTFOUND, FABRICESERVICETYPETEMPLATENOTFOUND, FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS, FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND, FABRICETIMEOUT, FABRICEVALUEEMPTY, FABRICEVALUETOOLARGE, FABRICEVOLUMEALREADYEXISTS, FABRICEVOLUMENOTFOUND, SerializationError} +} + +// FabricEventKind enumerates the values for fabric event kind. +type FabricEventKind string + +const ( + // FabricEventKindApplicationCreated ... + FabricEventKindApplicationCreated FabricEventKind = "ApplicationCreated" + // FabricEventKindApplicationDeleted ... + FabricEventKindApplicationDeleted FabricEventKind = "ApplicationDeleted" + // FabricEventKindApplicationEvent ... + FabricEventKindApplicationEvent FabricEventKind = "ApplicationEvent" + // FabricEventKindApplicationHealthReportCreated ... + FabricEventKindApplicationHealthReportCreated FabricEventKind = "ApplicationHealthReportCreated" + // FabricEventKindApplicationHealthReportExpired ... + FabricEventKindApplicationHealthReportExpired FabricEventKind = "ApplicationHealthReportExpired" + // FabricEventKindApplicationUpgradeComplete ... + FabricEventKindApplicationUpgradeComplete FabricEventKind = "ApplicationUpgradeComplete" + // FabricEventKindApplicationUpgradeDomainComplete ... + FabricEventKindApplicationUpgradeDomainComplete FabricEventKind = "ApplicationUpgradeDomainComplete" + // FabricEventKindApplicationUpgradeRollbackComplete ... + FabricEventKindApplicationUpgradeRollbackComplete FabricEventKind = "ApplicationUpgradeRollbackComplete" + // FabricEventKindApplicationUpgradeRollbackStart ... + FabricEventKindApplicationUpgradeRollbackStart FabricEventKind = "ApplicationUpgradeRollbackStart" + // FabricEventKindApplicationUpgradeStart ... + FabricEventKindApplicationUpgradeStart FabricEventKind = "ApplicationUpgradeStart" + // FabricEventKindChaosMovePrimaryFaultScheduled ... + FabricEventKindChaosMovePrimaryFaultScheduled FabricEventKind = "ChaosMovePrimaryFaultScheduled" + // FabricEventKindChaosMoveSecondaryFaultScheduled ... + FabricEventKindChaosMoveSecondaryFaultScheduled FabricEventKind = "ChaosMoveSecondaryFaultScheduled" + // FabricEventKindChaosRemoveReplicaFaultCompleted ... + FabricEventKindChaosRemoveReplicaFaultCompleted FabricEventKind = "ChaosRemoveReplicaFaultCompleted" + // FabricEventKindChaosRemoveReplicaFaultScheduled ... + FabricEventKindChaosRemoveReplicaFaultScheduled FabricEventKind = "ChaosRemoveReplicaFaultScheduled" + // FabricEventKindChaosRestartCodePackageFaultCompleted ... + FabricEventKindChaosRestartCodePackageFaultCompleted FabricEventKind = "ChaosRestartCodePackageFaultCompleted" + // FabricEventKindChaosRestartCodePackageFaultScheduled ... + FabricEventKindChaosRestartCodePackageFaultScheduled FabricEventKind = "ChaosRestartCodePackageFaultScheduled" + // FabricEventKindChaosRestartNodeFaultCompleted ... + FabricEventKindChaosRestartNodeFaultCompleted FabricEventKind = "ChaosRestartNodeFaultCompleted" + // FabricEventKindChaosRestartNodeFaultScheduled ... + FabricEventKindChaosRestartNodeFaultScheduled FabricEventKind = "ChaosRestartNodeFaultScheduled" + // FabricEventKindChaosRestartReplicaFaultScheduled ... + FabricEventKindChaosRestartReplicaFaultScheduled FabricEventKind = "ChaosRestartReplicaFaultScheduled" + // FabricEventKindChaosStarted ... + FabricEventKindChaosStarted FabricEventKind = "ChaosStarted" + // FabricEventKindChaosStopped ... + FabricEventKindChaosStopped FabricEventKind = "ChaosStopped" + // FabricEventKindClusterEvent ... + FabricEventKindClusterEvent FabricEventKind = "ClusterEvent" + // FabricEventKindClusterHealthReportCreated ... + FabricEventKindClusterHealthReportCreated FabricEventKind = "ClusterHealthReportCreated" + // FabricEventKindClusterHealthReportExpired ... + FabricEventKindClusterHealthReportExpired FabricEventKind = "ClusterHealthReportExpired" + // FabricEventKindClusterUpgradeComplete ... + FabricEventKindClusterUpgradeComplete FabricEventKind = "ClusterUpgradeComplete" + // FabricEventKindClusterUpgradeDomainComplete ... + FabricEventKindClusterUpgradeDomainComplete FabricEventKind = "ClusterUpgradeDomainComplete" + // FabricEventKindClusterUpgradeRollbackComplete ... + FabricEventKindClusterUpgradeRollbackComplete FabricEventKind = "ClusterUpgradeRollbackComplete" + // FabricEventKindClusterUpgradeRollbackStart ... + FabricEventKindClusterUpgradeRollbackStart FabricEventKind = "ClusterUpgradeRollbackStart" + // FabricEventKindClusterUpgradeStart ... + FabricEventKindClusterUpgradeStart FabricEventKind = "ClusterUpgradeStart" + // FabricEventKindContainerDeactivated ... + FabricEventKindContainerDeactivated FabricEventKind = "ContainerDeactivated" + // FabricEventKindContainerInstanceEvent ... + FabricEventKindContainerInstanceEvent FabricEventKind = "ContainerInstanceEvent" + // FabricEventKindDeployedApplicationHealthReportCreated ... + FabricEventKindDeployedApplicationHealthReportCreated FabricEventKind = "DeployedApplicationHealthReportCreated" + // FabricEventKindDeployedApplicationHealthReportExpired ... + FabricEventKindDeployedApplicationHealthReportExpired FabricEventKind = "DeployedApplicationHealthReportExpired" + // FabricEventKindDeployedServiceHealthReportCreated ... + FabricEventKindDeployedServiceHealthReportCreated FabricEventKind = "DeployedServiceHealthReportCreated" + // FabricEventKindDeployedServiceHealthReportExpired ... + FabricEventKindDeployedServiceHealthReportExpired FabricEventKind = "DeployedServiceHealthReportExpired" + // FabricEventKindNodeAborted ... + FabricEventKindNodeAborted FabricEventKind = "NodeAborted" + // FabricEventKindNodeAborting ... + FabricEventKindNodeAborting FabricEventKind = "NodeAborting" + // FabricEventKindNodeAdded ... + FabricEventKindNodeAdded FabricEventKind = "NodeAdded" + // FabricEventKindNodeClose ... + FabricEventKindNodeClose FabricEventKind = "NodeClose" + // FabricEventKindNodeClosing ... + FabricEventKindNodeClosing FabricEventKind = "NodeClosing" + // FabricEventKindNodeDeactivateComplete ... + FabricEventKindNodeDeactivateComplete FabricEventKind = "NodeDeactivateComplete" + // FabricEventKindNodeDeactivateStart ... + FabricEventKindNodeDeactivateStart FabricEventKind = "NodeDeactivateStart" + // FabricEventKindNodeDown ... + FabricEventKindNodeDown FabricEventKind = "NodeDown" + // FabricEventKindNodeEvent ... + FabricEventKindNodeEvent FabricEventKind = "NodeEvent" + // FabricEventKindNodeHealthReportCreated ... + FabricEventKindNodeHealthReportCreated FabricEventKind = "NodeHealthReportCreated" + // FabricEventKindNodeHealthReportExpired ... + FabricEventKindNodeHealthReportExpired FabricEventKind = "NodeHealthReportExpired" + // FabricEventKindNodeOpenedSuccess ... + FabricEventKindNodeOpenedSuccess FabricEventKind = "NodeOpenedSuccess" + // FabricEventKindNodeOpenFailed ... + FabricEventKindNodeOpenFailed FabricEventKind = "NodeOpenFailed" + // FabricEventKindNodeOpening ... + FabricEventKindNodeOpening FabricEventKind = "NodeOpening" + // FabricEventKindNodeRemoved ... + FabricEventKindNodeRemoved FabricEventKind = "NodeRemoved" + // FabricEventKindNodeUp ... + FabricEventKindNodeUp FabricEventKind = "NodeUp" + // FabricEventKindPartitionAnalysisEvent ... + FabricEventKindPartitionAnalysisEvent FabricEventKind = "PartitionAnalysisEvent" + // FabricEventKindPartitionEvent ... + FabricEventKindPartitionEvent FabricEventKind = "PartitionEvent" + // FabricEventKindPartitionHealthReportCreated ... + FabricEventKindPartitionHealthReportCreated FabricEventKind = "PartitionHealthReportCreated" + // FabricEventKindPartitionHealthReportExpired ... + FabricEventKindPartitionHealthReportExpired FabricEventKind = "PartitionHealthReportExpired" + // FabricEventKindPartitionPrimaryMoveAnalysis ... + FabricEventKindPartitionPrimaryMoveAnalysis FabricEventKind = "PartitionPrimaryMoveAnalysis" + // FabricEventKindPartitionReconfigurationCompleted ... + FabricEventKindPartitionReconfigurationCompleted FabricEventKind = "PartitionReconfigurationCompleted" + // FabricEventKindProcessDeactivated ... + FabricEventKindProcessDeactivated FabricEventKind = "ProcessDeactivated" + // FabricEventKindReplicaEvent ... + FabricEventKindReplicaEvent FabricEventKind = "ReplicaEvent" + // FabricEventKindServiceCreated ... + FabricEventKindServiceCreated FabricEventKind = "ServiceCreated" + // FabricEventKindServiceDeleted ... + FabricEventKindServiceDeleted FabricEventKind = "ServiceDeleted" + // FabricEventKindServiceEvent ... + FabricEventKindServiceEvent FabricEventKind = "ServiceEvent" + // FabricEventKindServiceHealthReportCreated ... + FabricEventKindServiceHealthReportCreated FabricEventKind = "ServiceHealthReportCreated" + // FabricEventKindServiceHealthReportExpired ... + FabricEventKindServiceHealthReportExpired FabricEventKind = "ServiceHealthReportExpired" + // FabricEventKindStatefulReplicaHealthReportCreated ... + FabricEventKindStatefulReplicaHealthReportCreated FabricEventKind = "StatefulReplicaHealthReportCreated" + // FabricEventKindStatefulReplicaHealthReportExpired ... + FabricEventKindStatefulReplicaHealthReportExpired FabricEventKind = "StatefulReplicaHealthReportExpired" + // FabricEventKindStatelessReplicaHealthReportCreated ... + FabricEventKindStatelessReplicaHealthReportCreated FabricEventKind = "StatelessReplicaHealthReportCreated" + // FabricEventKindStatelessReplicaHealthReportExpired ... + FabricEventKindStatelessReplicaHealthReportExpired FabricEventKind = "StatelessReplicaHealthReportExpired" +) + +// PossibleFabricEventKindValues returns an array of possible values for the FabricEventKind const type. +func PossibleFabricEventKindValues() []FabricEventKind { + return []FabricEventKind{FabricEventKindApplicationCreated, FabricEventKindApplicationDeleted, FabricEventKindApplicationEvent, FabricEventKindApplicationHealthReportCreated, FabricEventKindApplicationHealthReportExpired, FabricEventKindApplicationUpgradeComplete, FabricEventKindApplicationUpgradeDomainComplete, FabricEventKindApplicationUpgradeRollbackComplete, FabricEventKindApplicationUpgradeRollbackStart, FabricEventKindApplicationUpgradeStart, FabricEventKindChaosMovePrimaryFaultScheduled, FabricEventKindChaosMoveSecondaryFaultScheduled, FabricEventKindChaosRemoveReplicaFaultCompleted, FabricEventKindChaosRemoveReplicaFaultScheduled, FabricEventKindChaosRestartCodePackageFaultCompleted, FabricEventKindChaosRestartCodePackageFaultScheduled, FabricEventKindChaosRestartNodeFaultCompleted, FabricEventKindChaosRestartNodeFaultScheduled, FabricEventKindChaosRestartReplicaFaultScheduled, FabricEventKindChaosStarted, FabricEventKindChaosStopped, FabricEventKindClusterEvent, FabricEventKindClusterHealthReportCreated, FabricEventKindClusterHealthReportExpired, FabricEventKindClusterUpgradeComplete, FabricEventKindClusterUpgradeDomainComplete, FabricEventKindClusterUpgradeRollbackComplete, FabricEventKindClusterUpgradeRollbackStart, FabricEventKindClusterUpgradeStart, FabricEventKindContainerDeactivated, FabricEventKindContainerInstanceEvent, FabricEventKindDeployedApplicationHealthReportCreated, FabricEventKindDeployedApplicationHealthReportExpired, FabricEventKindDeployedServiceHealthReportCreated, FabricEventKindDeployedServiceHealthReportExpired, FabricEventKindNodeAborted, FabricEventKindNodeAborting, FabricEventKindNodeAdded, FabricEventKindNodeClose, FabricEventKindNodeClosing, FabricEventKindNodeDeactivateComplete, FabricEventKindNodeDeactivateStart, FabricEventKindNodeDown, FabricEventKindNodeEvent, FabricEventKindNodeHealthReportCreated, FabricEventKindNodeHealthReportExpired, FabricEventKindNodeOpenedSuccess, FabricEventKindNodeOpenFailed, FabricEventKindNodeOpening, FabricEventKindNodeRemoved, FabricEventKindNodeUp, FabricEventKindPartitionAnalysisEvent, FabricEventKindPartitionEvent, FabricEventKindPartitionHealthReportCreated, FabricEventKindPartitionHealthReportExpired, FabricEventKindPartitionPrimaryMoveAnalysis, FabricEventKindPartitionReconfigurationCompleted, FabricEventKindProcessDeactivated, FabricEventKindReplicaEvent, FabricEventKindServiceCreated, FabricEventKindServiceDeleted, FabricEventKindServiceEvent, FabricEventKindServiceHealthReportCreated, FabricEventKindServiceHealthReportExpired, FabricEventKindStatefulReplicaHealthReportCreated, FabricEventKindStatefulReplicaHealthReportExpired, FabricEventKindStatelessReplicaHealthReportCreated, FabricEventKindStatelessReplicaHealthReportExpired} +} + +// FabricReplicaStatus enumerates the values for fabric replica status. +type FabricReplicaStatus string + +const ( + // FabricReplicaStatusDown Indicates that the replica is down. + FabricReplicaStatusDown FabricReplicaStatus = "Down" + // FabricReplicaStatusInvalid Indicates that the read or write operation access status is not valid. This + // value is not returned to the caller. + FabricReplicaStatusInvalid FabricReplicaStatus = "Invalid" + // FabricReplicaStatusUp Indicates that the replica is up. + FabricReplicaStatusUp FabricReplicaStatus = "Up" +) + +// PossibleFabricReplicaStatusValues returns an array of possible values for the FabricReplicaStatus const type. +func PossibleFabricReplicaStatusValues() []FabricReplicaStatus { + return []FabricReplicaStatus{FabricReplicaStatusDown, FabricReplicaStatusInvalid, FabricReplicaStatusUp} +} + +// FailureAction enumerates the values for failure action. +type FailureAction string + +const ( + // FailureActionInvalid Indicates the failure action is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + FailureActionInvalid FailureAction = "Invalid" + // FailureActionManual The upgrade will switch to UnmonitoredManual upgrade mode. The value is 2 + FailureActionManual FailureAction = "Manual" + // FailureActionRollback The upgrade will start rolling back automatically. The value is 1 + FailureActionRollback FailureAction = "Rollback" +) + +// PossibleFailureActionValues returns an array of possible values for the FailureAction const type. +func PossibleFailureActionValues() []FailureAction { + return []FailureAction{FailureActionInvalid, FailureActionManual, FailureActionRollback} +} + +// FailureReason enumerates the values for failure reason. +type FailureReason string + +const ( + // HealthCheck The upgrade failed due to health policy violations. The value is 2 + HealthCheck FailureReason = "HealthCheck" + // Interrupted There was an external request to roll back the upgrade. The value is 1 + Interrupted FailureReason = "Interrupted" + // None Indicates the reason is invalid or unknown. All Service Fabric enumerations have the invalid type. + // The value is zero. + None FailureReason = "None" + // OverallUpgradeTimeout The overall upgrade took longer than the allowed upgrade timeout to process. The + // value is 4 + OverallUpgradeTimeout FailureReason = "OverallUpgradeTimeout" + // UpgradeDomainTimeout An upgrade domain took longer than the allowed upgrade domain timeout to process. + // The value is 3 + UpgradeDomainTimeout FailureReason = "UpgradeDomainTimeout" +) + +// PossibleFailureReasonValues returns an array of possible values for the FailureReason const type. +func PossibleFailureReasonValues() []FailureReason { + return []FailureReason{HealthCheck, Interrupted, None, OverallUpgradeTimeout, UpgradeDomainTimeout} +} + +// HealthEvaluationKind enumerates the values for health evaluation kind. +type HealthEvaluationKind string + +const ( + // HealthEvaluationKindApplication Indicates that the health evaluation is for an application. The value is + // 18. + HealthEvaluationKindApplication HealthEvaluationKind = "Application" + // HealthEvaluationKindApplications Indicates that the health evaluation is for the cluster applications. + // The value is 8. + HealthEvaluationKindApplications HealthEvaluationKind = "Applications" + // HealthEvaluationKindApplicationTypeApplications – Indicates that the health evaluation is for + // applications of an application type. The value is 21. + HealthEvaluationKindApplicationTypeApplications HealthEvaluationKind = "ApplicationTypeApplications" + // HealthEvaluationKindDeltaNodesCheck Indicates that the health evaluation is for the delta of unhealthy + // cluster nodes. The value is 19. + HealthEvaluationKindDeltaNodesCheck HealthEvaluationKind = "DeltaNodesCheck" + // HealthEvaluationKindDeployedApplication Indicates that the health evaluation is for a deployed + // application. The value is 17. + HealthEvaluationKindDeployedApplication HealthEvaluationKind = "DeployedApplication" + // HealthEvaluationKindDeployedApplications Indicates that the health evaluation is for the deployed + // applications of an application. The value is 5. + HealthEvaluationKindDeployedApplications HealthEvaluationKind = "DeployedApplications" + // HealthEvaluationKindDeployedServicePackage Indicates that the health evaluation is for a deployed + // service package. The value is 16. + HealthEvaluationKindDeployedServicePackage HealthEvaluationKind = "DeployedServicePackage" + // HealthEvaluationKindDeployedServicePackages Indicates that the health evaluation is for the deployed + // service packages of a deployed application. The value is 4. + HealthEvaluationKindDeployedServicePackages HealthEvaluationKind = "DeployedServicePackages" + // HealthEvaluationKindEvent Indicates that the health evaluation is for a health event. The value is 1. + HealthEvaluationKindEvent HealthEvaluationKind = "Event" + // HealthEvaluationKindInvalid Indicates that the health evaluation is invalid. The value is zero. + HealthEvaluationKindInvalid HealthEvaluationKind = "Invalid" + // HealthEvaluationKindNode Indicates that the health evaluation is for a node. The value is 12. + HealthEvaluationKindNode HealthEvaluationKind = "Node" + // HealthEvaluationKindNodes Indicates that the health evaluation is for the cluster nodes. The value is 7. + HealthEvaluationKindNodes HealthEvaluationKind = "Nodes" + // HealthEvaluationKindPartition Indicates that the health evaluation is for a partition. The value is 14. + HealthEvaluationKindPartition HealthEvaluationKind = "Partition" + // HealthEvaluationKindPartitions Indicates that the health evaluation is for the partitions of a service. + // The value is 3. + HealthEvaluationKindPartitions HealthEvaluationKind = "Partitions" + // HealthEvaluationKindReplica Indicates that the health evaluation is for a replica. The value is 13. + HealthEvaluationKindReplica HealthEvaluationKind = "Replica" + // HealthEvaluationKindReplicas Indicates that the health evaluation is for the replicas of a partition. + // The value is 2. + HealthEvaluationKindReplicas HealthEvaluationKind = "Replicas" + // HealthEvaluationKindService Indicates that the health evaluation is for a service. The value is 15. + HealthEvaluationKindService HealthEvaluationKind = "Service" + // HealthEvaluationKindServices Indicates that the health evaluation is for services of an application. The + // value is 6. + HealthEvaluationKindServices HealthEvaluationKind = "Services" + // HealthEvaluationKindSystemApplication Indicates that the health evaluation is for the system + // application. The value is 9. + HealthEvaluationKindSystemApplication HealthEvaluationKind = "SystemApplication" + // HealthEvaluationKindUpgradeDomainDeltaNodesCheck Indicates that the health evaluation is for the delta + // of unhealthy upgrade domain cluster nodes. The value is 20. + HealthEvaluationKindUpgradeDomainDeltaNodesCheck HealthEvaluationKind = "UpgradeDomainDeltaNodesCheck" + // HealthEvaluationKindUpgradeDomainDeployedApplications Indicates that the health evaluation is for the + // deployed applications of an application in an upgrade domain. The value is 10. + HealthEvaluationKindUpgradeDomainDeployedApplications HealthEvaluationKind = "UpgradeDomainDeployedApplications" + // HealthEvaluationKindUpgradeDomainNodes Indicates that the health evaluation is for the cluster nodes in + // an upgrade domain. The value is 11. + HealthEvaluationKindUpgradeDomainNodes HealthEvaluationKind = "UpgradeDomainNodes" +) + +// PossibleHealthEvaluationKindValues returns an array of possible values for the HealthEvaluationKind const type. +func PossibleHealthEvaluationKindValues() []HealthEvaluationKind { + return []HealthEvaluationKind{HealthEvaluationKindApplication, HealthEvaluationKindApplications, HealthEvaluationKindApplicationTypeApplications, HealthEvaluationKindDeltaNodesCheck, HealthEvaluationKindDeployedApplication, HealthEvaluationKindDeployedApplications, HealthEvaluationKindDeployedServicePackage, HealthEvaluationKindDeployedServicePackages, HealthEvaluationKindEvent, HealthEvaluationKindInvalid, HealthEvaluationKindNode, HealthEvaluationKindNodes, HealthEvaluationKindPartition, HealthEvaluationKindPartitions, HealthEvaluationKindReplica, HealthEvaluationKindReplicas, HealthEvaluationKindService, HealthEvaluationKindServices, HealthEvaluationKindSystemApplication, HealthEvaluationKindUpgradeDomainDeltaNodesCheck, HealthEvaluationKindUpgradeDomainDeployedApplications, HealthEvaluationKindUpgradeDomainNodes} +} + +// HealthState enumerates the values for health state. +type HealthState string + +const ( + // HealthStateError Indicates the health state is at an error level. Error health state should be + // investigated, as they can impact the correct functionality of the cluster. The value is 3. + HealthStateError HealthState = "Error" + // HealthStateInvalid Indicates an invalid health state. All Service Fabric enumerations have the invalid + // type. The value is zero. + HealthStateInvalid HealthState = "Invalid" + // HealthStateOk Indicates the health state is okay. The value is 1. + HealthStateOk HealthState = "Ok" + // HealthStateUnknown Indicates an unknown health status. The value is 65535. + HealthStateUnknown HealthState = "Unknown" + // HealthStateWarning Indicates the health state is at a warning level. The value is 2. + HealthStateWarning HealthState = "Warning" +) + +// PossibleHealthStateValues returns an array of possible values for the HealthState const type. +func PossibleHealthStateValues() []HealthState { + return []HealthState{HealthStateError, HealthStateInvalid, HealthStateOk, HealthStateUnknown, HealthStateWarning} +} + +// HostIsolationMode enumerates the values for host isolation mode. +type HostIsolationMode string + +const ( + // HostIsolationModeHyperV Indicates the ContainerHost is a Hyper-V container. This applies to only Windows + // containers. The value is 2. + HostIsolationModeHyperV HostIsolationMode = "HyperV" + // HostIsolationModeNone Indicates the isolation mode is not applicable for given HostType. The value is 0. + HostIsolationModeNone HostIsolationMode = "None" + // HostIsolationModeProcess This is the default isolation mode for a ContainerHost. The value is 1. + HostIsolationModeProcess HostIsolationMode = "Process" +) + +// PossibleHostIsolationModeValues returns an array of possible values for the HostIsolationMode const type. +func PossibleHostIsolationModeValues() []HostIsolationMode { + return []HostIsolationMode{HostIsolationModeHyperV, HostIsolationModeNone, HostIsolationModeProcess} +} + +// HostType enumerates the values for host type. +type HostType string + +const ( + // HostTypeContainerHost Indicates the host is a container. The value is 2. + HostTypeContainerHost HostType = "ContainerHost" + // HostTypeExeHost Indicates the host is an executable. The value is 1. + HostTypeExeHost HostType = "ExeHost" + // HostTypeInvalid Indicates the type of host is not known or invalid. The value is 0. + HostTypeInvalid HostType = "Invalid" +) + +// PossibleHostTypeValues returns an array of possible values for the HostType const type. +func PossibleHostTypeValues() []HostType { + return []HostType{HostTypeContainerHost, HostTypeExeHost, HostTypeInvalid} +} + +// ImpactLevel enumerates the values for impact level. +type ImpactLevel string + +const ( + // ImpactLevelInvalid ... + ImpactLevelInvalid ImpactLevel = "Invalid" + // ImpactLevelNone ... + ImpactLevelNone ImpactLevel = "None" + // ImpactLevelRemoveData ... + ImpactLevelRemoveData ImpactLevel = "RemoveData" + // ImpactLevelRemoveNode ... + ImpactLevelRemoveNode ImpactLevel = "RemoveNode" + // ImpactLevelRestart ... + ImpactLevelRestart ImpactLevel = "Restart" +) + +// PossibleImpactLevelValues returns an array of possible values for the ImpactLevel const type. +func PossibleImpactLevelValues() []ImpactLevel { + return []ImpactLevel{ImpactLevelInvalid, ImpactLevelNone, ImpactLevelRemoveData, ImpactLevelRemoveNode, ImpactLevelRestart} +} + +// Kind enumerates the values for kind. +type Kind string + +const ( + // KindApplication ... + KindApplication Kind = "Application" + // KindApplications ... + KindApplications Kind = "Applications" + // KindApplicationTypeApplications ... + KindApplicationTypeApplications Kind = "ApplicationTypeApplications" + // KindDeltaNodesCheck ... + KindDeltaNodesCheck Kind = "DeltaNodesCheck" + // KindDeployedApplication ... + KindDeployedApplication Kind = "DeployedApplication" + // KindDeployedApplications ... + KindDeployedApplications Kind = "DeployedApplications" + // KindDeployedServicePackage ... + KindDeployedServicePackage Kind = "DeployedServicePackage" + // KindDeployedServicePackages ... + KindDeployedServicePackages Kind = "DeployedServicePackages" + // KindEvent ... + KindEvent Kind = "Event" + // KindHealthEvaluation ... + KindHealthEvaluation Kind = "HealthEvaluation" + // KindNode ... + KindNode Kind = "Node" + // KindNodes ... + KindNodes Kind = "Nodes" + // KindPartition ... + KindPartition Kind = "Partition" + // KindPartitions ... + KindPartitions Kind = "Partitions" + // KindReplica ... + KindReplica Kind = "Replica" + // KindReplicas ... + KindReplicas Kind = "Replicas" + // KindService ... + KindService Kind = "Service" + // KindServices ... + KindServices Kind = "Services" + // KindSystemApplication ... + KindSystemApplication Kind = "SystemApplication" + // KindUpgradeDomainDeltaNodesCheck ... + KindUpgradeDomainDeltaNodesCheck Kind = "UpgradeDomainDeltaNodesCheck" + // KindUpgradeDomainNodes ... + KindUpgradeDomainNodes Kind = "UpgradeDomainNodes" +) + +// PossibleKindValues returns an array of possible values for the Kind const type. +func PossibleKindValues() []Kind { + return []Kind{KindApplication, KindApplications, KindApplicationTypeApplications, KindDeltaNodesCheck, KindDeployedApplication, KindDeployedApplications, KindDeployedServicePackage, KindDeployedServicePackages, KindEvent, KindHealthEvaluation, KindNode, KindNodes, KindPartition, KindPartitions, KindReplica, KindReplicas, KindService, KindServices, KindSystemApplication, KindUpgradeDomainDeltaNodesCheck, KindUpgradeDomainNodes} +} + +// KindBasicBackupConfigurationInfo enumerates the values for kind basic backup configuration info. +type KindBasicBackupConfigurationInfo string + +const ( + // KindBasicBackupConfigurationInfoKindApplication ... + KindBasicBackupConfigurationInfoKindApplication KindBasicBackupConfigurationInfo = "Application" + // KindBasicBackupConfigurationInfoKindBackupConfigurationInfo ... + KindBasicBackupConfigurationInfoKindBackupConfigurationInfo KindBasicBackupConfigurationInfo = "BackupConfigurationInfo" + // KindBasicBackupConfigurationInfoKindPartition ... + KindBasicBackupConfigurationInfoKindPartition KindBasicBackupConfigurationInfo = "Partition" + // KindBasicBackupConfigurationInfoKindService ... + KindBasicBackupConfigurationInfoKindService KindBasicBackupConfigurationInfo = "Service" +) + +// PossibleKindBasicBackupConfigurationInfoValues returns an array of possible values for the KindBasicBackupConfigurationInfo const type. +func PossibleKindBasicBackupConfigurationInfoValues() []KindBasicBackupConfigurationInfo { + return []KindBasicBackupConfigurationInfo{KindBasicBackupConfigurationInfoKindApplication, KindBasicBackupConfigurationInfoKindBackupConfigurationInfo, KindBasicBackupConfigurationInfoKindPartition, KindBasicBackupConfigurationInfoKindService} +} + +// KindBasicChaosEvent enumerates the values for kind basic chaos event. +type KindBasicChaosEvent string + +const ( + // KindChaosEvent ... + KindChaosEvent KindBasicChaosEvent = "ChaosEvent" + // KindExecutingFaults ... + KindExecutingFaults KindBasicChaosEvent = "ExecutingFaults" + // KindStarted ... + KindStarted KindBasicChaosEvent = "Started" + // KindStopped ... + KindStopped KindBasicChaosEvent = "Stopped" + // KindTestError ... + KindTestError KindBasicChaosEvent = "TestError" + // KindValidationFailed ... + KindValidationFailed KindBasicChaosEvent = "ValidationFailed" + // KindWaiting ... + KindWaiting KindBasicChaosEvent = "Waiting" +) + +// PossibleKindBasicChaosEventValues returns an array of possible values for the KindBasicChaosEvent const type. +func PossibleKindBasicChaosEventValues() []KindBasicChaosEvent { + return []KindBasicChaosEvent{KindChaosEvent, KindExecutingFaults, KindStarted, KindStopped, KindTestError, KindValidationFailed, KindWaiting} +} + +// KindBasicDiagnosticsSinkProperties enumerates the values for kind basic diagnostics sink properties. +type KindBasicDiagnosticsSinkProperties string + +const ( + // KindDiagnosticsSinkProperties ... + KindDiagnosticsSinkProperties KindBasicDiagnosticsSinkProperties = "DiagnosticsSinkProperties" +) + +// PossibleKindBasicDiagnosticsSinkPropertiesValues returns an array of possible values for the KindBasicDiagnosticsSinkProperties const type. +func PossibleKindBasicDiagnosticsSinkPropertiesValues() []KindBasicDiagnosticsSinkProperties { + return []KindBasicDiagnosticsSinkProperties{KindDiagnosticsSinkProperties} +} + +// KindBasicFabricEvent enumerates the values for kind basic fabric event. +type KindBasicFabricEvent string + +const ( + // KindApplicationCreated ... + KindApplicationCreated KindBasicFabricEvent = "ApplicationCreated" + // KindApplicationDeleted ... + KindApplicationDeleted KindBasicFabricEvent = "ApplicationDeleted" + // KindApplicationEvent ... + KindApplicationEvent KindBasicFabricEvent = "ApplicationEvent" + // KindApplicationHealthReportCreated ... + KindApplicationHealthReportCreated KindBasicFabricEvent = "ApplicationHealthReportCreated" + // KindApplicationHealthReportExpired ... + KindApplicationHealthReportExpired KindBasicFabricEvent = "ApplicationHealthReportExpired" + // KindApplicationUpgradeComplete ... + KindApplicationUpgradeComplete KindBasicFabricEvent = "ApplicationUpgradeComplete" + // KindApplicationUpgradeDomainComplete ... + KindApplicationUpgradeDomainComplete KindBasicFabricEvent = "ApplicationUpgradeDomainComplete" + // KindApplicationUpgradeRollbackComplete ... + KindApplicationUpgradeRollbackComplete KindBasicFabricEvent = "ApplicationUpgradeRollbackComplete" + // KindApplicationUpgradeRollbackStart ... + KindApplicationUpgradeRollbackStart KindBasicFabricEvent = "ApplicationUpgradeRollbackStart" + // KindApplicationUpgradeStart ... + KindApplicationUpgradeStart KindBasicFabricEvent = "ApplicationUpgradeStart" + // KindChaosMovePrimaryFaultScheduled ... + KindChaosMovePrimaryFaultScheduled KindBasicFabricEvent = "ChaosMovePrimaryFaultScheduled" + // KindChaosMoveSecondaryFaultScheduled ... + KindChaosMoveSecondaryFaultScheduled KindBasicFabricEvent = "ChaosMoveSecondaryFaultScheduled" + // KindChaosRemoveReplicaFaultCompleted ... + KindChaosRemoveReplicaFaultCompleted KindBasicFabricEvent = "ChaosRemoveReplicaFaultCompleted" + // KindChaosRemoveReplicaFaultScheduled ... + KindChaosRemoveReplicaFaultScheduled KindBasicFabricEvent = "ChaosRemoveReplicaFaultScheduled" + // KindChaosRestartCodePackageFaultCompleted ... + KindChaosRestartCodePackageFaultCompleted KindBasicFabricEvent = "ChaosRestartCodePackageFaultCompleted" + // KindChaosRestartCodePackageFaultScheduled ... + KindChaosRestartCodePackageFaultScheduled KindBasicFabricEvent = "ChaosRestartCodePackageFaultScheduled" + // KindChaosRestartNodeFaultCompleted ... + KindChaosRestartNodeFaultCompleted KindBasicFabricEvent = "ChaosRestartNodeFaultCompleted" + // KindChaosRestartNodeFaultScheduled ... + KindChaosRestartNodeFaultScheduled KindBasicFabricEvent = "ChaosRestartNodeFaultScheduled" + // KindChaosRestartReplicaFaultScheduled ... + KindChaosRestartReplicaFaultScheduled KindBasicFabricEvent = "ChaosRestartReplicaFaultScheduled" + // KindChaosStarted ... + KindChaosStarted KindBasicFabricEvent = "ChaosStarted" + // KindChaosStopped ... + KindChaosStopped KindBasicFabricEvent = "ChaosStopped" + // KindClusterEvent ... + KindClusterEvent KindBasicFabricEvent = "ClusterEvent" + // KindClusterHealthReportCreated ... + KindClusterHealthReportCreated KindBasicFabricEvent = "ClusterHealthReportCreated" + // KindClusterHealthReportExpired ... + KindClusterHealthReportExpired KindBasicFabricEvent = "ClusterHealthReportExpired" + // KindClusterUpgradeComplete ... + KindClusterUpgradeComplete KindBasicFabricEvent = "ClusterUpgradeComplete" + // KindClusterUpgradeDomainComplete ... + KindClusterUpgradeDomainComplete KindBasicFabricEvent = "ClusterUpgradeDomainComplete" + // KindClusterUpgradeRollbackComplete ... + KindClusterUpgradeRollbackComplete KindBasicFabricEvent = "ClusterUpgradeRollbackComplete" + // KindClusterUpgradeRollbackStart ... + KindClusterUpgradeRollbackStart KindBasicFabricEvent = "ClusterUpgradeRollbackStart" + // KindClusterUpgradeStart ... + KindClusterUpgradeStart KindBasicFabricEvent = "ClusterUpgradeStart" + // KindContainerDeactivated ... + KindContainerDeactivated KindBasicFabricEvent = "ContainerDeactivated" + // KindContainerInstanceEvent ... + KindContainerInstanceEvent KindBasicFabricEvent = "ContainerInstanceEvent" + // KindDeployedApplicationHealthReportCreated ... + KindDeployedApplicationHealthReportCreated KindBasicFabricEvent = "DeployedApplicationHealthReportCreated" + // KindDeployedApplicationHealthReportExpired ... + KindDeployedApplicationHealthReportExpired KindBasicFabricEvent = "DeployedApplicationHealthReportExpired" + // KindDeployedServiceHealthReportCreated ... + KindDeployedServiceHealthReportCreated KindBasicFabricEvent = "DeployedServiceHealthReportCreated" + // KindDeployedServiceHealthReportExpired ... + KindDeployedServiceHealthReportExpired KindBasicFabricEvent = "DeployedServiceHealthReportExpired" + // KindFabricEvent ... + KindFabricEvent KindBasicFabricEvent = "FabricEvent" + // KindNodeAborted ... + KindNodeAborted KindBasicFabricEvent = "NodeAborted" + // KindNodeAborting ... + KindNodeAborting KindBasicFabricEvent = "NodeAborting" + // KindNodeAdded ... + KindNodeAdded KindBasicFabricEvent = "NodeAdded" + // KindNodeClose ... + KindNodeClose KindBasicFabricEvent = "NodeClose" + // KindNodeClosing ... + KindNodeClosing KindBasicFabricEvent = "NodeClosing" + // KindNodeDeactivateComplete ... + KindNodeDeactivateComplete KindBasicFabricEvent = "NodeDeactivateComplete" + // KindNodeDeactivateStart ... + KindNodeDeactivateStart KindBasicFabricEvent = "NodeDeactivateStart" + // KindNodeDown ... + KindNodeDown KindBasicFabricEvent = "NodeDown" + // KindNodeEvent ... + KindNodeEvent KindBasicFabricEvent = "NodeEvent" + // KindNodeHealthReportCreated ... + KindNodeHealthReportCreated KindBasicFabricEvent = "NodeHealthReportCreated" + // KindNodeHealthReportExpired ... + KindNodeHealthReportExpired KindBasicFabricEvent = "NodeHealthReportExpired" + // KindNodeOpenedSuccess ... + KindNodeOpenedSuccess KindBasicFabricEvent = "NodeOpenedSuccess" + // KindNodeOpenFailed ... + KindNodeOpenFailed KindBasicFabricEvent = "NodeOpenFailed" + // KindNodeOpening ... + KindNodeOpening KindBasicFabricEvent = "NodeOpening" + // KindNodeRemoved ... + KindNodeRemoved KindBasicFabricEvent = "NodeRemoved" + // KindNodeUp ... + KindNodeUp KindBasicFabricEvent = "NodeUp" + // KindPartitionAnalysisEvent ... + KindPartitionAnalysisEvent KindBasicFabricEvent = "PartitionAnalysisEvent" + // KindPartitionEvent ... + KindPartitionEvent KindBasicFabricEvent = "PartitionEvent" + // KindPartitionHealthReportCreated ... + KindPartitionHealthReportCreated KindBasicFabricEvent = "PartitionHealthReportCreated" + // KindPartitionHealthReportExpired ... + KindPartitionHealthReportExpired KindBasicFabricEvent = "PartitionHealthReportExpired" + // KindPartitionPrimaryMoveAnalysis ... + KindPartitionPrimaryMoveAnalysis KindBasicFabricEvent = "PartitionPrimaryMoveAnalysis" + // KindPartitionReconfigurationCompleted ... + KindPartitionReconfigurationCompleted KindBasicFabricEvent = "PartitionReconfigurationCompleted" + // KindProcessDeactivated ... + KindProcessDeactivated KindBasicFabricEvent = "ProcessDeactivated" + // KindReplicaEvent ... + KindReplicaEvent KindBasicFabricEvent = "ReplicaEvent" + // KindServiceCreated ... + KindServiceCreated KindBasicFabricEvent = "ServiceCreated" + // KindServiceDeleted ... + KindServiceDeleted KindBasicFabricEvent = "ServiceDeleted" + // KindServiceEvent ... + KindServiceEvent KindBasicFabricEvent = "ServiceEvent" + // KindServiceHealthReportCreated ... + KindServiceHealthReportCreated KindBasicFabricEvent = "ServiceHealthReportCreated" + // KindServiceHealthReportExpired ... + KindServiceHealthReportExpired KindBasicFabricEvent = "ServiceHealthReportExpired" + // KindStatefulReplicaHealthReportCreated ... + KindStatefulReplicaHealthReportCreated KindBasicFabricEvent = "StatefulReplicaHealthReportCreated" + // KindStatefulReplicaHealthReportExpired ... + KindStatefulReplicaHealthReportExpired KindBasicFabricEvent = "StatefulReplicaHealthReportExpired" + // KindStatelessReplicaHealthReportCreated ... + KindStatelessReplicaHealthReportCreated KindBasicFabricEvent = "StatelessReplicaHealthReportCreated" + // KindStatelessReplicaHealthReportExpired ... + KindStatelessReplicaHealthReportExpired KindBasicFabricEvent = "StatelessReplicaHealthReportExpired" +) + +// PossibleKindBasicFabricEventValues returns an array of possible values for the KindBasicFabricEvent const type. +func PossibleKindBasicFabricEventValues() []KindBasicFabricEvent { + return []KindBasicFabricEvent{KindApplicationCreated, KindApplicationDeleted, KindApplicationEvent, KindApplicationHealthReportCreated, KindApplicationHealthReportExpired, KindApplicationUpgradeComplete, KindApplicationUpgradeDomainComplete, KindApplicationUpgradeRollbackComplete, KindApplicationUpgradeRollbackStart, KindApplicationUpgradeStart, KindChaosMovePrimaryFaultScheduled, KindChaosMoveSecondaryFaultScheduled, KindChaosRemoveReplicaFaultCompleted, KindChaosRemoveReplicaFaultScheduled, KindChaosRestartCodePackageFaultCompleted, KindChaosRestartCodePackageFaultScheduled, KindChaosRestartNodeFaultCompleted, KindChaosRestartNodeFaultScheduled, KindChaosRestartReplicaFaultScheduled, KindChaosStarted, KindChaosStopped, KindClusterEvent, KindClusterHealthReportCreated, KindClusterHealthReportExpired, KindClusterUpgradeComplete, KindClusterUpgradeDomainComplete, KindClusterUpgradeRollbackComplete, KindClusterUpgradeRollbackStart, KindClusterUpgradeStart, KindContainerDeactivated, KindContainerInstanceEvent, KindDeployedApplicationHealthReportCreated, KindDeployedApplicationHealthReportExpired, KindDeployedServiceHealthReportCreated, KindDeployedServiceHealthReportExpired, KindFabricEvent, KindNodeAborted, KindNodeAborting, KindNodeAdded, KindNodeClose, KindNodeClosing, KindNodeDeactivateComplete, KindNodeDeactivateStart, KindNodeDown, KindNodeEvent, KindNodeHealthReportCreated, KindNodeHealthReportExpired, KindNodeOpenedSuccess, KindNodeOpenFailed, KindNodeOpening, KindNodeRemoved, KindNodeUp, KindPartitionAnalysisEvent, KindPartitionEvent, KindPartitionHealthReportCreated, KindPartitionHealthReportExpired, KindPartitionPrimaryMoveAnalysis, KindPartitionReconfigurationCompleted, KindProcessDeactivated, KindReplicaEvent, KindServiceCreated, KindServiceDeleted, KindServiceEvent, KindServiceHealthReportCreated, KindServiceHealthReportExpired, KindStatefulReplicaHealthReportCreated, KindStatefulReplicaHealthReportExpired, KindStatelessReplicaHealthReportCreated, KindStatelessReplicaHealthReportExpired} +} + +// KindBasicPropertyBatchInfo enumerates the values for kind basic property batch info. +type KindBasicPropertyBatchInfo string + +const ( + // KindFailed ... + KindFailed KindBasicPropertyBatchInfo = "Failed" + // KindPropertyBatchInfo ... + KindPropertyBatchInfo KindBasicPropertyBatchInfo = "PropertyBatchInfo" + // KindSuccessful ... + KindSuccessful KindBasicPropertyBatchInfo = "Successful" +) + +// PossibleKindBasicPropertyBatchInfoValues returns an array of possible values for the KindBasicPropertyBatchInfo const type. +func PossibleKindBasicPropertyBatchInfoValues() []KindBasicPropertyBatchInfo { + return []KindBasicPropertyBatchInfo{KindFailed, KindPropertyBatchInfo, KindSuccessful} +} + +// KindBasicPropertyBatchOperation enumerates the values for kind basic property batch operation. +type KindBasicPropertyBatchOperation string + +const ( + // KindCheckExists ... + KindCheckExists KindBasicPropertyBatchOperation = "CheckExists" + // KindCheckSequence ... + KindCheckSequence KindBasicPropertyBatchOperation = "CheckSequence" + // KindCheckValue ... + KindCheckValue KindBasicPropertyBatchOperation = "CheckValue" + // KindDelete ... + KindDelete KindBasicPropertyBatchOperation = "Delete" + // KindGet ... + KindGet KindBasicPropertyBatchOperation = "Get" + // KindPropertyBatchOperation ... + KindPropertyBatchOperation KindBasicPropertyBatchOperation = "PropertyBatchOperation" + // KindPut ... + KindPut KindBasicPropertyBatchOperation = "Put" +) + +// PossibleKindBasicPropertyBatchOperationValues returns an array of possible values for the KindBasicPropertyBatchOperation const type. +func PossibleKindBasicPropertyBatchOperationValues() []KindBasicPropertyBatchOperation { + return []KindBasicPropertyBatchOperation{KindCheckExists, KindCheckSequence, KindCheckValue, KindDelete, KindGet, KindPropertyBatchOperation, KindPut} +} + +// KindBasicPropertyValue enumerates the values for kind basic property value. +type KindBasicPropertyValue string + +const ( + // KindBinary ... + KindBinary KindBasicPropertyValue = "Binary" + // KindDouble ... + KindDouble KindBasicPropertyValue = "Double" + // KindGUID ... + KindGUID KindBasicPropertyValue = "Guid" + // KindInt64 ... + KindInt64 KindBasicPropertyValue = "Int64" + // KindPropertyValue ... + KindPropertyValue KindBasicPropertyValue = "PropertyValue" + // KindString ... + KindString KindBasicPropertyValue = "String" +) + +// PossibleKindBasicPropertyValueValues returns an array of possible values for the KindBasicPropertyValue const type. +func PossibleKindBasicPropertyValueValues() []KindBasicPropertyValue { + return []KindBasicPropertyValue{KindBinary, KindDouble, KindGUID, KindInt64, KindPropertyValue, KindString} +} + +// KindBasicProvisionApplicationTypeDescriptionBase enumerates the values for kind basic provision application +// type description base. +type KindBasicProvisionApplicationTypeDescriptionBase string + +const ( + // KindExternalStore ... + KindExternalStore KindBasicProvisionApplicationTypeDescriptionBase = "ExternalStore" + // KindImageStorePath ... + KindImageStorePath KindBasicProvisionApplicationTypeDescriptionBase = "ImageStorePath" + // KindProvisionApplicationTypeDescriptionBase ... + KindProvisionApplicationTypeDescriptionBase KindBasicProvisionApplicationTypeDescriptionBase = "ProvisionApplicationTypeDescriptionBase" +) + +// PossibleKindBasicProvisionApplicationTypeDescriptionBaseValues returns an array of possible values for the KindBasicProvisionApplicationTypeDescriptionBase const type. +func PossibleKindBasicProvisionApplicationTypeDescriptionBaseValues() []KindBasicProvisionApplicationTypeDescriptionBase { + return []KindBasicProvisionApplicationTypeDescriptionBase{KindExternalStore, KindImageStorePath, KindProvisionApplicationTypeDescriptionBase} +} + +// KindBasicRepairImpactDescriptionBase enumerates the values for kind basic repair impact description base. +type KindBasicRepairImpactDescriptionBase string + +const ( + // KindBasicRepairImpactDescriptionBaseKindNode ... + KindBasicRepairImpactDescriptionBaseKindNode KindBasicRepairImpactDescriptionBase = "Node" + // KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase ... + KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase KindBasicRepairImpactDescriptionBase = "RepairImpactDescriptionBase" +) + +// PossibleKindBasicRepairImpactDescriptionBaseValues returns an array of possible values for the KindBasicRepairImpactDescriptionBase const type. +func PossibleKindBasicRepairImpactDescriptionBaseValues() []KindBasicRepairImpactDescriptionBase { + return []KindBasicRepairImpactDescriptionBase{KindBasicRepairImpactDescriptionBaseKindNode, KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase} +} + +// KindBasicRepairTargetDescriptionBase enumerates the values for kind basic repair target description base. +type KindBasicRepairTargetDescriptionBase string + +const ( + // KindBasicRepairTargetDescriptionBaseKindNode ... + KindBasicRepairTargetDescriptionBaseKindNode KindBasicRepairTargetDescriptionBase = "Node" + // KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase ... + KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase KindBasicRepairTargetDescriptionBase = "RepairTargetDescriptionBase" +) + +// PossibleKindBasicRepairTargetDescriptionBaseValues returns an array of possible values for the KindBasicRepairTargetDescriptionBase const type. +func PossibleKindBasicRepairTargetDescriptionBaseValues() []KindBasicRepairTargetDescriptionBase { + return []KindBasicRepairTargetDescriptionBase{KindBasicRepairTargetDescriptionBaseKindNode, KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase} +} + +// KindBasicReplicaStatusBase enumerates the values for kind basic replica status base. +type KindBasicReplicaStatusBase string + +const ( + // KindKeyValueStore ... + KindKeyValueStore KindBasicReplicaStatusBase = "KeyValueStore" + // KindReplicaStatusBase ... + KindReplicaStatusBase KindBasicReplicaStatusBase = "ReplicaStatusBase" +) + +// PossibleKindBasicReplicaStatusBaseValues returns an array of possible values for the KindBasicReplicaStatusBase const type. +func PossibleKindBasicReplicaStatusBaseValues() []KindBasicReplicaStatusBase { + return []KindBasicReplicaStatusBase{KindKeyValueStore, KindReplicaStatusBase} +} + +// KindBasicReplicatorStatus enumerates the values for kind basic replicator status. +type KindBasicReplicatorStatus string + +const ( + // KindActiveSecondary ... + KindActiveSecondary KindBasicReplicatorStatus = "ActiveSecondary" + // KindIdleSecondary ... + KindIdleSecondary KindBasicReplicatorStatus = "IdleSecondary" + // KindPrimary ... + KindPrimary KindBasicReplicatorStatus = "Primary" + // KindReplicatorStatus ... + KindReplicatorStatus KindBasicReplicatorStatus = "ReplicatorStatus" + // KindSecondaryReplicatorStatus ... + KindSecondaryReplicatorStatus KindBasicReplicatorStatus = "SecondaryReplicatorStatus" +) + +// PossibleKindBasicReplicatorStatusValues returns an array of possible values for the KindBasicReplicatorStatus const type. +func PossibleKindBasicReplicatorStatusValues() []KindBasicReplicatorStatus { + return []KindBasicReplicatorStatus{KindActiveSecondary, KindIdleSecondary, KindPrimary, KindReplicatorStatus, KindSecondaryReplicatorStatus} +} + +// KindBasicSafetyCheck enumerates the values for kind basic safety check. +type KindBasicSafetyCheck string + +const ( + // KindEnsureAvailability ... + KindEnsureAvailability KindBasicSafetyCheck = "EnsureAvailability" + // KindEnsurePartitionQuorum ... + KindEnsurePartitionQuorum KindBasicSafetyCheck = "EnsurePartitionQuorum" + // KindEnsureSeedNodeQuorum ... + KindEnsureSeedNodeQuorum KindBasicSafetyCheck = "EnsureSeedNodeQuorum" + // KindPartitionSafetyCheck ... + KindPartitionSafetyCheck KindBasicSafetyCheck = "PartitionSafetyCheck" + // KindSafetyCheck ... + KindSafetyCheck KindBasicSafetyCheck = "SafetyCheck" + // KindWaitForInbuildReplica ... + KindWaitForInbuildReplica KindBasicSafetyCheck = "WaitForInbuildReplica" + // KindWaitForPrimaryPlacement ... + KindWaitForPrimaryPlacement KindBasicSafetyCheck = "WaitForPrimaryPlacement" + // KindWaitForPrimarySwap ... + KindWaitForPrimarySwap KindBasicSafetyCheck = "WaitForPrimarySwap" + // KindWaitForReconfiguration ... + KindWaitForReconfiguration KindBasicSafetyCheck = "WaitForReconfiguration" +) + +// PossibleKindBasicSafetyCheckValues returns an array of possible values for the KindBasicSafetyCheck const type. +func PossibleKindBasicSafetyCheckValues() []KindBasicSafetyCheck { + return []KindBasicSafetyCheck{KindEnsureAvailability, KindEnsurePartitionQuorum, KindEnsureSeedNodeQuorum, KindPartitionSafetyCheck, KindSafetyCheck, KindWaitForInbuildReplica, KindWaitForPrimaryPlacement, KindWaitForPrimarySwap, KindWaitForReconfiguration} +} + +// KindBasicScalingMechanismDescription enumerates the values for kind basic scaling mechanism description. +type KindBasicScalingMechanismDescription string + +const ( + // KindAddRemoveIncrementalNamedPartition ... + KindAddRemoveIncrementalNamedPartition KindBasicScalingMechanismDescription = "AddRemoveIncrementalNamedPartition" + // KindPartitionInstanceCount ... + KindPartitionInstanceCount KindBasicScalingMechanismDescription = "PartitionInstanceCount" + // KindScalingMechanismDescription ... + KindScalingMechanismDescription KindBasicScalingMechanismDescription = "ScalingMechanismDescription" +) + +// PossibleKindBasicScalingMechanismDescriptionValues returns an array of possible values for the KindBasicScalingMechanismDescription const type. +func PossibleKindBasicScalingMechanismDescriptionValues() []KindBasicScalingMechanismDescription { + return []KindBasicScalingMechanismDescription{KindAddRemoveIncrementalNamedPartition, KindPartitionInstanceCount, KindScalingMechanismDescription} +} + +// KindBasicScalingTriggerDescription enumerates the values for kind basic scaling trigger description. +type KindBasicScalingTriggerDescription string + +const ( + // KindAveragePartitionLoad ... + KindAveragePartitionLoad KindBasicScalingTriggerDescription = "AveragePartitionLoad" + // KindAverageServiceLoad ... + KindAverageServiceLoad KindBasicScalingTriggerDescription = "AverageServiceLoad" + // KindScalingTriggerDescription ... + KindScalingTriggerDescription KindBasicScalingTriggerDescription = "ScalingTriggerDescription" +) + +// PossibleKindBasicScalingTriggerDescriptionValues returns an array of possible values for the KindBasicScalingTriggerDescription const type. +func PossibleKindBasicScalingTriggerDescriptionValues() []KindBasicScalingTriggerDescription { + return []KindBasicScalingTriggerDescription{KindAveragePartitionLoad, KindAverageServiceLoad, KindScalingTriggerDescription} +} + +// KindBasicServiceTypeDescription enumerates the values for kind basic service type description. +type KindBasicServiceTypeDescription string + +const ( + // KindServiceTypeDescription ... + KindServiceTypeDescription KindBasicServiceTypeDescription = "ServiceTypeDescription" + // KindStateful ... + KindStateful KindBasicServiceTypeDescription = "Stateful" + // KindStateless ... + KindStateless KindBasicServiceTypeDescription = "Stateless" +) + +// PossibleKindBasicServiceTypeDescriptionValues returns an array of possible values for the KindBasicServiceTypeDescription const type. +func PossibleKindBasicServiceTypeDescriptionValues() []KindBasicServiceTypeDescription { + return []KindBasicServiceTypeDescription{KindServiceTypeDescription, KindStateful, KindStateless} +} + +// MoveCost enumerates the values for move cost. +type MoveCost string + +const ( + // High Specifies the move cost of the service as High. The value is 3. + High MoveCost = "High" + // Low Specifies the move cost of the service as Low. The value is 1. + Low MoveCost = "Low" + // Medium Specifies the move cost of the service as Medium. The value is 2. + Medium MoveCost = "Medium" + // Zero Zero move cost. This value is zero. + Zero MoveCost = "Zero" +) + +// PossibleMoveCostValues returns an array of possible values for the MoveCost const type. +func PossibleMoveCostValues() []MoveCost { + return []MoveCost{High, Low, Medium, Zero} +} + +// NodeDeactivationIntent enumerates the values for node deactivation intent. +type NodeDeactivationIntent string + +const ( + // NodeDeactivationIntentInvalid Indicates the node deactivation intent is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. This value is not used. + NodeDeactivationIntentInvalid NodeDeactivationIntent = "Invalid" + // NodeDeactivationIntentPause Indicates that the node should be paused. The value is 1. + NodeDeactivationIntentPause NodeDeactivationIntent = "Pause" + // NodeDeactivationIntentRemoveData Indicates that the intent is to reimage the node. Service Fabric does + // not reimage the node, this action is done outside of Service Fabric. The value is 3. + NodeDeactivationIntentRemoveData NodeDeactivationIntent = "RemoveData" + // NodeDeactivationIntentRemoveNode Indicates that the node is being decommissioned and is not expected to + // return. Service Fabric does not decommission the node, this action is done outside of Service Fabric. + // The value is 4. + NodeDeactivationIntentRemoveNode NodeDeactivationIntent = "RemoveNode" + // NodeDeactivationIntentRestart Indicates that the intent is for the node to be restarted after a short + // period of time. Service Fabric does not restart the node, this action is done outside of Service Fabric. + // The value is 2. + NodeDeactivationIntentRestart NodeDeactivationIntent = "Restart" +) + +// PossibleNodeDeactivationIntentValues returns an array of possible values for the NodeDeactivationIntent const type. +func PossibleNodeDeactivationIntentValues() []NodeDeactivationIntent { + return []NodeDeactivationIntent{NodeDeactivationIntentInvalid, NodeDeactivationIntentPause, NodeDeactivationIntentRemoveData, NodeDeactivationIntentRemoveNode, NodeDeactivationIntentRestart} +} + +// NodeDeactivationStatus enumerates the values for node deactivation status. +type NodeDeactivationStatus string + +const ( + // NodeDeactivationStatusCompleted The task is completed. The value is 3. + NodeDeactivationStatusCompleted NodeDeactivationStatus = "Completed" + // NodeDeactivationStatusNone No status is associated with the task. The value is zero. + NodeDeactivationStatusNone NodeDeactivationStatus = "None" + // NodeDeactivationStatusSafetyCheckComplete When a node is deactivated Service Fabric performs checks to + // ensure that the operation is safe to proceed to ensure availability of the service and reliability of + // the state. This value indicates that all safety checks have been completed. The value is 2. + NodeDeactivationStatusSafetyCheckComplete NodeDeactivationStatus = "SafetyCheckComplete" + // NodeDeactivationStatusSafetyCheckInProgress When a node is deactivated Service Fabric performs checks to + // ensure that the operation is safe to proceed to ensure availability of the service and reliability of + // the state. This value indicates that one or more safety checks are in progress. The value is 1. + NodeDeactivationStatusSafetyCheckInProgress NodeDeactivationStatus = "SafetyCheckInProgress" +) + +// PossibleNodeDeactivationStatusValues returns an array of possible values for the NodeDeactivationStatus const type. +func PossibleNodeDeactivationStatusValues() []NodeDeactivationStatus { + return []NodeDeactivationStatus{NodeDeactivationStatusCompleted, NodeDeactivationStatusNone, NodeDeactivationStatusSafetyCheckComplete, NodeDeactivationStatusSafetyCheckInProgress} +} + +// NodeDeactivationTaskType enumerates the values for node deactivation task type. +type NodeDeactivationTaskType string + +const ( + // NodeDeactivationTaskTypeClient Specifies that the task was created by using the public API. The value is + // 3. + NodeDeactivationTaskTypeClient NodeDeactivationTaskType = "Client" + // NodeDeactivationTaskTypeInfrastructure Specifies the task created by Infrastructure hosting the nodes. + // The value is 1. + NodeDeactivationTaskTypeInfrastructure NodeDeactivationTaskType = "Infrastructure" + // NodeDeactivationTaskTypeInvalid Indicates the node deactivation task type is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. This value is not used. + NodeDeactivationTaskTypeInvalid NodeDeactivationTaskType = "Invalid" + // NodeDeactivationTaskTypeRepair Specifies the task that was created by the Repair Manager service. The + // value is 2. + NodeDeactivationTaskTypeRepair NodeDeactivationTaskType = "Repair" +) + +// PossibleNodeDeactivationTaskTypeValues returns an array of possible values for the NodeDeactivationTaskType const type. +func PossibleNodeDeactivationTaskTypeValues() []NodeDeactivationTaskType { + return []NodeDeactivationTaskType{NodeDeactivationTaskTypeClient, NodeDeactivationTaskTypeInfrastructure, NodeDeactivationTaskTypeInvalid, NodeDeactivationTaskTypeRepair} +} + +// NodeStatus enumerates the values for node status. +type NodeStatus string + +const ( + // NodeStatusDisabled Indicates the node is disabled. The value is 5. + NodeStatusDisabled NodeStatus = "Disabled" + // NodeStatusDisabling Indicates the node is in the process of being disabled. The value is 4. + NodeStatusDisabling NodeStatus = "Disabling" + // NodeStatusDown Indicates the node is down. The value is 2. + NodeStatusDown NodeStatus = "Down" + // NodeStatusEnabling Indicates the node is in process of being enabled. The value is 3. + NodeStatusEnabling NodeStatus = "Enabling" + // NodeStatusInvalid Indicates the node status is invalid. All Service Fabric enumerations have the invalid + // type. The value is zero. + NodeStatusInvalid NodeStatus = "Invalid" + // NodeStatusRemoved Indicates the node is removed. A node would be in Removed state if NodeStateRemoved + // API has been called for this node. In other words, Service Fabric has been informed that the persisted + // state on the node has been permanently lost. The value is 7. + NodeStatusRemoved NodeStatus = "Removed" + // NodeStatusUnknown Indicates the node is unknown. A node would be in Unknown state if Service Fabric does + // not have authoritative information about that node. This can happen if the system learns about a node at + // runtime.The value is 6. + NodeStatusUnknown NodeStatus = "Unknown" + // NodeStatusUp Indicates the node is up. The value is 1. + NodeStatusUp NodeStatus = "Up" +) + +// PossibleNodeStatusValues returns an array of possible values for the NodeStatus const type. +func PossibleNodeStatusValues() []NodeStatus { + return []NodeStatus{NodeStatusDisabled, NodeStatusDisabling, NodeStatusDown, NodeStatusEnabling, NodeStatusInvalid, NodeStatusRemoved, NodeStatusUnknown, NodeStatusUp} +} + +// NodeStatusFilter enumerates the values for node status filter. +type NodeStatusFilter string + +const ( + // All This filter value will match all of the nodes. + All NodeStatusFilter = "all" + // Default This filter value will match all of the nodes excepts the ones with status as Unknown or + // Removed. + Default NodeStatusFilter = "default" + // Disabled This filter value will match nodes that are Disabled. + Disabled NodeStatusFilter = "disabled" + // Disabling This filter value will match nodes that are in the process of being disabled with status as + // Disabling. + Disabling NodeStatusFilter = "disabling" + // Down This filter value will match nodes that are Down. + Down NodeStatusFilter = "down" + // Enabling This filter value will match nodes that are in the process of being enabled with status as + // Enabling. + Enabling NodeStatusFilter = "enabling" + // Removed This filter value will match nodes whose status is Removed. These are the nodes that are removed + // from the cluster using the RemoveNodeState API. + Removed NodeStatusFilter = "removed" + // Unknown This filter value will match nodes whose status is Unknown. A node would be in Unknown state if + // Service Fabric does not have authoritative information about that node. This can happen if the system + // learns about a node at runtime. + Unknown NodeStatusFilter = "unknown" + // Up This filter value will match nodes that are Up. + Up NodeStatusFilter = "up" +) + +// PossibleNodeStatusFilterValues returns an array of possible values for the NodeStatusFilter const type. +func PossibleNodeStatusFilterValues() []NodeStatusFilter { + return []NodeStatusFilter{All, Default, Disabled, Disabling, Down, Enabling, Removed, Unknown, Up} +} + +// NodeTransitionType enumerates the values for node transition type. +type NodeTransitionType string + +const ( + // NodeTransitionTypeInvalid Reserved. Do not pass into API. + NodeTransitionTypeInvalid NodeTransitionType = "Invalid" + // NodeTransitionTypeStart Transition a stopped node to up. + NodeTransitionTypeStart NodeTransitionType = "Start" + // NodeTransitionTypeStop Transition an up node to stopped. + NodeTransitionTypeStop NodeTransitionType = "Stop" +) + +// PossibleNodeTransitionTypeValues returns an array of possible values for the NodeTransitionType const type. +func PossibleNodeTransitionTypeValues() []NodeTransitionType { + return []NodeTransitionType{NodeTransitionTypeInvalid, NodeTransitionTypeStart, NodeTransitionTypeStop} +} + +// NodeUpgradePhase enumerates the values for node upgrade phase. +type NodeUpgradePhase string + +const ( + // NodeUpgradePhaseInvalid Indicates the upgrade state is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + NodeUpgradePhaseInvalid NodeUpgradePhase = "Invalid" + // NodeUpgradePhasePostUpgradeSafetyCheck The upgrade has completed and post upgrade safety checks are + // being performed. The value is 3 + NodeUpgradePhasePostUpgradeSafetyCheck NodeUpgradePhase = "PostUpgradeSafetyCheck" + // NodeUpgradePhasePreUpgradeSafetyCheck The upgrade has not started yet due to pending safety checks. The + // value is 1 + NodeUpgradePhasePreUpgradeSafetyCheck NodeUpgradePhase = "PreUpgradeSafetyCheck" + // NodeUpgradePhaseUpgrading The upgrade is in progress. The value is 2 + NodeUpgradePhaseUpgrading NodeUpgradePhase = "Upgrading" +) + +// PossibleNodeUpgradePhaseValues returns an array of possible values for the NodeUpgradePhase const type. +func PossibleNodeUpgradePhaseValues() []NodeUpgradePhase { + return []NodeUpgradePhase{NodeUpgradePhaseInvalid, NodeUpgradePhasePostUpgradeSafetyCheck, NodeUpgradePhasePreUpgradeSafetyCheck, NodeUpgradePhaseUpgrading} +} + +// OperatingSystemTypes enumerates the values for operating system types. +type OperatingSystemTypes string + +const ( + // Linux ... + Linux OperatingSystemTypes = "Linux" + // Windows ... + Windows OperatingSystemTypes = "Windows" +) + +// PossibleOperatingSystemTypesValues returns an array of possible values for the OperatingSystemTypes const type. +func PossibleOperatingSystemTypesValues() []OperatingSystemTypes { + return []OperatingSystemTypes{Linux, Windows} +} + +// OperationState enumerates the values for operation state. +type OperationState string + +const ( + // OperationStateCancelled The operation was cancelled by the user using CancelOperation, and is no longer + // running. + OperationStateCancelled OperationState = "Cancelled" + // OperationStateCompleted The operation has completed successfully and is no longer running. + OperationStateCompleted OperationState = "Completed" + // OperationStateFaulted The operation has failed and is no longer running. + OperationStateFaulted OperationState = "Faulted" + // OperationStateForceCancelled The operation was cancelled by the user using CancelOperation, with the + // force parameter set to true. It is no longer running. Refer to CancelOperation for more details. + OperationStateForceCancelled OperationState = "ForceCancelled" + // OperationStateInvalid The operation state is invalid. + OperationStateInvalid OperationState = "Invalid" + // OperationStateRollingBack The operation is rolling back internal system state because it encountered a + // fatal error or was cancelled by the user. "RollingBack" does not refer to user state. For example, + // if CancelOperation is called on a command of type PartitionDataLoss, state of "RollingBack" does not + // mean service data is being restored (assuming the command has progressed far enough to cause data loss). + // It means the system is rolling back/cleaning up internal system state associated with the command. + OperationStateRollingBack OperationState = "RollingBack" + // OperationStateRunning The operation is in progress. + OperationStateRunning OperationState = "Running" +) + +// PossibleOperationStateValues returns an array of possible values for the OperationState const type. +func PossibleOperationStateValues() []OperationState { + return []OperationState{OperationStateCancelled, OperationStateCompleted, OperationStateFaulted, OperationStateForceCancelled, OperationStateInvalid, OperationStateRollingBack, OperationStateRunning} +} + +// OperationType enumerates the values for operation type. +type OperationType string + +const ( + // OperationTypeInvalid The operation state is invalid. + OperationTypeInvalid OperationType = "Invalid" + // OperationTypeNodeTransition An operation started using the StartNodeTransition API. + OperationTypeNodeTransition OperationType = "NodeTransition" + // OperationTypePartitionDataLoss An operation started using the StartDataLoss API. + OperationTypePartitionDataLoss OperationType = "PartitionDataLoss" + // OperationTypePartitionQuorumLoss An operation started using the StartQuorumLoss API. + OperationTypePartitionQuorumLoss OperationType = "PartitionQuorumLoss" + // OperationTypePartitionRestart An operation started using the StartPartitionRestart API. + OperationTypePartitionRestart OperationType = "PartitionRestart" +) + +// PossibleOperationTypeValues returns an array of possible values for the OperationType const type. +func PossibleOperationTypeValues() []OperationType { + return []OperationType{OperationTypeInvalid, OperationTypeNodeTransition, OperationTypePartitionDataLoss, OperationTypePartitionQuorumLoss, OperationTypePartitionRestart} +} + +// PackageSharingPolicyScope enumerates the values for package sharing policy scope. +type PackageSharingPolicyScope string + +const ( + // PackageSharingPolicyScopeAll Share all code, config and data packages from corresponding service + // manifest. The value is 1. + PackageSharingPolicyScopeAll PackageSharingPolicyScope = "All" + // PackageSharingPolicyScopeCode Share all code packages from corresponding service manifest. The value is + // 2. + PackageSharingPolicyScopeCode PackageSharingPolicyScope = "Code" + // PackageSharingPolicyScopeConfig Share all config packages from corresponding service manifest. The value + // is 3. + PackageSharingPolicyScopeConfig PackageSharingPolicyScope = "Config" + // PackageSharingPolicyScopeData Share all data packages from corresponding service manifest. The value is + // 4. + PackageSharingPolicyScopeData PackageSharingPolicyScope = "Data" + // PackageSharingPolicyScopeNone No package sharing policy scope. The value is 0. + PackageSharingPolicyScopeNone PackageSharingPolicyScope = "None" +) + +// PossiblePackageSharingPolicyScopeValues returns an array of possible values for the PackageSharingPolicyScope const type. +func PossiblePackageSharingPolicyScopeValues() []PackageSharingPolicyScope { + return []PackageSharingPolicyScope{PackageSharingPolicyScopeAll, PackageSharingPolicyScopeCode, PackageSharingPolicyScopeConfig, PackageSharingPolicyScopeData, PackageSharingPolicyScopeNone} +} + +// PartitionAccessStatus enumerates the values for partition access status. +type PartitionAccessStatus string + +const ( + // PartitionAccessStatusGranted Indicates that the read or write operation access is granted and the + // operation is allowed. + PartitionAccessStatusGranted PartitionAccessStatus = "Granted" + // PartitionAccessStatusInvalid Indicates that the read or write operation access status is not valid. This + // value is not returned to the caller. + PartitionAccessStatusInvalid PartitionAccessStatus = "Invalid" + // PartitionAccessStatusNotPrimary Indicates that this client request was received by a replica that is not + // a Primary replica. + PartitionAccessStatusNotPrimary PartitionAccessStatus = "NotPrimary" + // PartitionAccessStatusNoWriteQuorum Indicates that no write quorum is available and, therefore, no write + // operation can be accepted. + PartitionAccessStatusNoWriteQuorum PartitionAccessStatus = "NoWriteQuorum" + // PartitionAccessStatusReconfigurationPending Indicates that the client should try again later, because a + // reconfiguration is in progress. + PartitionAccessStatusReconfigurationPending PartitionAccessStatus = "ReconfigurationPending" +) + +// PossiblePartitionAccessStatusValues returns an array of possible values for the PartitionAccessStatus const type. +func PossiblePartitionAccessStatusValues() []PartitionAccessStatus { + return []PartitionAccessStatus{PartitionAccessStatusGranted, PartitionAccessStatusInvalid, PartitionAccessStatusNotPrimary, PartitionAccessStatusNoWriteQuorum, PartitionAccessStatusReconfigurationPending} +} + +// PartitionScheme enumerates the values for partition scheme. +type PartitionScheme string + +const ( + // PartitionSchemeInvalid Indicates the partition kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + PartitionSchemeInvalid PartitionScheme = "Invalid" + // PartitionSchemeNamed Indicates that the partition is based on string names, and is a + // NamedPartitionSchemeDescription object. The value is 3 + PartitionSchemeNamed PartitionScheme = "Named" + // PartitionSchemeSingleton Indicates that the partition is based on string names, and is a + // SingletonPartitionSchemeDescription object, The value is 1. + PartitionSchemeSingleton PartitionScheme = "Singleton" + // PartitionSchemeUniformInt64Range Indicates that the partition is based on Int64 key ranges, and is a + // UniformInt64RangePartitionSchemeDescription object. The value is 2. + PartitionSchemeUniformInt64Range PartitionScheme = "UniformInt64Range" +) + +// PossiblePartitionSchemeValues returns an array of possible values for the PartitionScheme const type. +func PossiblePartitionSchemeValues() []PartitionScheme { + return []PartitionScheme{PartitionSchemeInvalid, PartitionSchemeNamed, PartitionSchemeSingleton, PartitionSchemeUniformInt64Range} +} + +// PartitionSchemeBasicPartitionSchemeDescription enumerates the values for partition scheme basic partition +// scheme description. +type PartitionSchemeBasicPartitionSchemeDescription string + +const ( + // PartitionSchemeNamed1 ... + PartitionSchemeNamed1 PartitionSchemeBasicPartitionSchemeDescription = "Named" + // PartitionSchemePartitionSchemeDescription ... + PartitionSchemePartitionSchemeDescription PartitionSchemeBasicPartitionSchemeDescription = "PartitionSchemeDescription" + // PartitionSchemeSingleton1 ... + PartitionSchemeSingleton1 PartitionSchemeBasicPartitionSchemeDescription = "Singleton" + // PartitionSchemeUniformInt64Range1 ... + PartitionSchemeUniformInt64Range1 PartitionSchemeBasicPartitionSchemeDescription = "UniformInt64Range" +) + +// PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues returns an array of possible values for the PartitionSchemeBasicPartitionSchemeDescription const type. +func PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues() []PartitionSchemeBasicPartitionSchemeDescription { + return []PartitionSchemeBasicPartitionSchemeDescription{PartitionSchemeNamed1, PartitionSchemePartitionSchemeDescription, PartitionSchemeSingleton1, PartitionSchemeUniformInt64Range1} +} + +// PropertyBatchInfoKind enumerates the values for property batch info kind. +type PropertyBatchInfoKind string + +const ( + // PropertyBatchInfoKindFailed The property batch failed. + PropertyBatchInfoKindFailed PropertyBatchInfoKind = "Failed" + // PropertyBatchInfoKindInvalid Indicates the property batch info is invalid. All Service Fabric + // enumerations have the invalid type. + PropertyBatchInfoKindInvalid PropertyBatchInfoKind = "Invalid" + // PropertyBatchInfoKindSuccessful The property batch succeeded. + PropertyBatchInfoKindSuccessful PropertyBatchInfoKind = "Successful" +) + +// PossiblePropertyBatchInfoKindValues returns an array of possible values for the PropertyBatchInfoKind const type. +func PossiblePropertyBatchInfoKindValues() []PropertyBatchInfoKind { + return []PropertyBatchInfoKind{PropertyBatchInfoKindFailed, PropertyBatchInfoKindInvalid, PropertyBatchInfoKindSuccessful} +} + +// PropertyBatchOperationKind enumerates the values for property batch operation kind. +type PropertyBatchOperationKind string + +const ( + // PropertyBatchOperationKindCheckExists The operation will check that a property exists or doesn't exists, + // depending on the provided value. The value is 3. + PropertyBatchOperationKindCheckExists PropertyBatchOperationKind = "CheckExists" + // PropertyBatchOperationKindCheckSequence The operation will ensure that the sequence number is equal to + // the provided value. The value is 4. + PropertyBatchOperationKindCheckSequence PropertyBatchOperationKind = "CheckSequence" + // PropertyBatchOperationKindCheckValue The operation will ensure that the value of a property is equal to + // the provided value. The value is 7. + PropertyBatchOperationKindCheckValue PropertyBatchOperationKind = "CheckValue" + // PropertyBatchOperationKindDelete The operation will delete a property. The value is 5. + PropertyBatchOperationKindDelete PropertyBatchOperationKind = "Delete" + // PropertyBatchOperationKindGet The operation will get a property. The value is 2. + PropertyBatchOperationKindGet PropertyBatchOperationKind = "Get" + // PropertyBatchOperationKindInvalid Indicates the property operation is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + PropertyBatchOperationKindInvalid PropertyBatchOperationKind = "Invalid" + // PropertyBatchOperationKindPut The operation will create or edit a property. The value is 1. + PropertyBatchOperationKindPut PropertyBatchOperationKind = "Put" +) + +// PossiblePropertyBatchOperationKindValues returns an array of possible values for the PropertyBatchOperationKind const type. +func PossiblePropertyBatchOperationKindValues() []PropertyBatchOperationKind { + return []PropertyBatchOperationKind{PropertyBatchOperationKindCheckExists, PropertyBatchOperationKindCheckSequence, PropertyBatchOperationKindCheckValue, PropertyBatchOperationKindDelete, PropertyBatchOperationKindGet, PropertyBatchOperationKindInvalid, PropertyBatchOperationKindPut} +} + +// PropertyValueKind enumerates the values for property value kind. +type PropertyValueKind string + +const ( + // PropertyValueKindBinary The data inside the property is a binary blob. The value is 1. + PropertyValueKindBinary PropertyValueKind = "Binary" + // PropertyValueKindDouble The data inside the property is a double. The value is 3. + PropertyValueKindDouble PropertyValueKind = "Double" + // PropertyValueKindGUID The data inside the property is a guid. The value is 5. + PropertyValueKindGUID PropertyValueKind = "Guid" + // PropertyValueKindInt64 The data inside the property is an int64. The value is 2. + PropertyValueKindInt64 PropertyValueKind = "Int64" + // PropertyValueKindInvalid Indicates the property is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + PropertyValueKindInvalid PropertyValueKind = "Invalid" + // PropertyValueKindString The data inside the property is a string. The value is 4. + PropertyValueKindString PropertyValueKind = "String" +) + +// PossiblePropertyValueKindValues returns an array of possible values for the PropertyValueKind const type. +func PossiblePropertyValueKindValues() []PropertyValueKind { + return []PropertyValueKind{PropertyValueKindBinary, PropertyValueKindDouble, PropertyValueKindGUID, PropertyValueKindInt64, PropertyValueKindInvalid, PropertyValueKindString} +} + +// ProvisionApplicationTypeKind enumerates the values for provision application type kind. +type ProvisionApplicationTypeKind string + +const ( + // ProvisionApplicationTypeKindExternalStore Indicates that the provision is for an application package + // that was previously uploaded to an external store. The application package ends with the extension + // *.sfpkg. The value is 2. + ProvisionApplicationTypeKindExternalStore ProvisionApplicationTypeKind = "ExternalStore" + // ProvisionApplicationTypeKindImageStorePath Indicates that the provision is for a package that was + // previously uploaded to the image store. The value is 1. + ProvisionApplicationTypeKindImageStorePath ProvisionApplicationTypeKind = "ImageStorePath" + // ProvisionApplicationTypeKindInvalid Indicates that the provision kind is invalid. This value is default + // and should not be used. The value is zero. + ProvisionApplicationTypeKindInvalid ProvisionApplicationTypeKind = "Invalid" +) + +// PossibleProvisionApplicationTypeKindValues returns an array of possible values for the ProvisionApplicationTypeKind const type. +func PossibleProvisionApplicationTypeKindValues() []ProvisionApplicationTypeKind { + return []ProvisionApplicationTypeKind{ProvisionApplicationTypeKindExternalStore, ProvisionApplicationTypeKindImageStorePath, ProvisionApplicationTypeKindInvalid} +} + +// QuorumLossMode enumerates the values for quorum loss mode. +type QuorumLossMode string + +const ( + // QuorumLossModeAllReplicas ... + QuorumLossModeAllReplicas QuorumLossMode = "AllReplicas" + // QuorumLossModeInvalid Reserved. Do not pass into API. + QuorumLossModeInvalid QuorumLossMode = "Invalid" + // QuorumLossModeQuorumReplicas Partial Quorum loss mode : Minimum number of replicas for a partition will + // be down that will cause a quorum loss. + QuorumLossModeQuorumReplicas QuorumLossMode = "QuorumReplicas" +) + +// PossibleQuorumLossModeValues returns an array of possible values for the QuorumLossMode const type. +func PossibleQuorumLossModeValues() []QuorumLossMode { + return []QuorumLossMode{QuorumLossModeAllReplicas, QuorumLossModeInvalid, QuorumLossModeQuorumReplicas} +} + +// ReconfigurationPhase enumerates the values for reconfiguration phase. +type ReconfigurationPhase string + +const ( + // ReconfigurationPhaseAbortPhaseZero This phase is for internal use only. + ReconfigurationPhaseAbortPhaseZero ReconfigurationPhase = "AbortPhaseZero" + // ReconfigurationPhaseNone Specifies that there is no reconfiguration in progress. + ReconfigurationPhaseNone ReconfigurationPhase = "None" + // ReconfigurationPhasePhase0 Refers to the phase where the reconfiguration is transferring data from the + // previous primary to the new primary. + ReconfigurationPhasePhase0 ReconfigurationPhase = "Phase0" + // ReconfigurationPhasePhase1 Refers to the phase where the reconfiguration is querying the replica set for + // the progress. + ReconfigurationPhasePhase1 ReconfigurationPhase = "Phase1" + // ReconfigurationPhasePhase2 Refers to the phase where the reconfiguration is ensuring that data from the + // current primary is present in a majority of the replica set. + ReconfigurationPhasePhase2 ReconfigurationPhase = "Phase2" + // ReconfigurationPhasePhase3 This phase is for internal use only. + ReconfigurationPhasePhase3 ReconfigurationPhase = "Phase3" + // ReconfigurationPhasePhase4 This phase is for internal use only. + ReconfigurationPhasePhase4 ReconfigurationPhase = "Phase4" + // ReconfigurationPhaseUnknown Indicates the invalid reconfiguration phase. + ReconfigurationPhaseUnknown ReconfigurationPhase = "Unknown" +) + +// PossibleReconfigurationPhaseValues returns an array of possible values for the ReconfigurationPhase const type. +func PossibleReconfigurationPhaseValues() []ReconfigurationPhase { + return []ReconfigurationPhase{ReconfigurationPhaseAbortPhaseZero, ReconfigurationPhaseNone, ReconfigurationPhasePhase0, ReconfigurationPhasePhase1, ReconfigurationPhasePhase2, ReconfigurationPhasePhase3, ReconfigurationPhasePhase4, ReconfigurationPhaseUnknown} +} + +// ReconfigurationType enumerates the values for reconfiguration type. +type ReconfigurationType string + +const ( + // ReconfigurationTypeFailover Reconfiguration triggered in response to a primary going down. This could be + // due to many reasons such as primary replica crashing etc. + ReconfigurationTypeFailover ReconfigurationType = "Failover" + // ReconfigurationTypeOther Reconfigurations where the primary replica is not changing. + ReconfigurationTypeOther ReconfigurationType = "Other" + // ReconfigurationTypeSwapPrimary Specifies that the primary replica is being swapped with a different + // replica. + ReconfigurationTypeSwapPrimary ReconfigurationType = "SwapPrimary" + // ReconfigurationTypeUnknown Indicates the invalid reconfiguration type. + ReconfigurationTypeUnknown ReconfigurationType = "Unknown" +) + +// PossibleReconfigurationTypeValues returns an array of possible values for the ReconfigurationType const type. +func PossibleReconfigurationTypeValues() []ReconfigurationType { + return []ReconfigurationType{ReconfigurationTypeFailover, ReconfigurationTypeOther, ReconfigurationTypeSwapPrimary, ReconfigurationTypeUnknown} +} + +// RepairImpactKind enumerates the values for repair impact kind. +type RepairImpactKind string + +const ( + // RepairImpactKindInvalid The repair impact is not valid or is of an unknown type. + RepairImpactKindInvalid RepairImpactKind = "Invalid" + // RepairImpactKindNode The repair impact affects a set of Service Fabric nodes. + RepairImpactKindNode RepairImpactKind = "Node" +) + +// PossibleRepairImpactKindValues returns an array of possible values for the RepairImpactKind const type. +func PossibleRepairImpactKindValues() []RepairImpactKind { + return []RepairImpactKind{RepairImpactKindInvalid, RepairImpactKindNode} +} + +// RepairTargetKind enumerates the values for repair target kind. +type RepairTargetKind string + +const ( + // RepairTargetKindInvalid The repair target is not valid or is of an unknown type. + RepairTargetKindInvalid RepairTargetKind = "Invalid" + // RepairTargetKindNode The repair target is a set of Service Fabric nodes. + RepairTargetKindNode RepairTargetKind = "Node" +) + +// PossibleRepairTargetKindValues returns an array of possible values for the RepairTargetKind const type. +func PossibleRepairTargetKindValues() []RepairTargetKind { + return []RepairTargetKind{RepairTargetKindInvalid, RepairTargetKindNode} +} + +// RepairTaskHealthCheckState enumerates the values for repair task health check state. +type RepairTaskHealthCheckState string + +const ( + // InProgress Indicates that the health check is in progress. + InProgress RepairTaskHealthCheckState = "InProgress" + // NotStarted Indicates that the health check has not started. + NotStarted RepairTaskHealthCheckState = "NotStarted" + // Skipped Indicates that the health check was skipped. + Skipped RepairTaskHealthCheckState = "Skipped" + // Succeeded Indicates that the health check succeeded. + Succeeded RepairTaskHealthCheckState = "Succeeded" + // TimedOut Indicates that the health check timed out. + TimedOut RepairTaskHealthCheckState = "TimedOut" +) + +// PossibleRepairTaskHealthCheckStateValues returns an array of possible values for the RepairTaskHealthCheckState const type. +func PossibleRepairTaskHealthCheckStateValues() []RepairTaskHealthCheckState { + return []RepairTaskHealthCheckState{InProgress, NotStarted, Skipped, Succeeded, TimedOut} +} + +// ReplicaHealthReportServiceKind enumerates the values for replica health report service kind. +type ReplicaHealthReportServiceKind string + +const ( + // Stateful Uses Service Fabric to make its state or part of its state highly available and reliable. The + // value is 2. + Stateful ReplicaHealthReportServiceKind = "Stateful" + // Stateless Does not use Service Fabric to make its state highly available or reliable. The value is 1 + Stateless ReplicaHealthReportServiceKind = "Stateless" +) + +// PossibleReplicaHealthReportServiceKindValues returns an array of possible values for the ReplicaHealthReportServiceKind const type. +func PossibleReplicaHealthReportServiceKindValues() []ReplicaHealthReportServiceKind { + return []ReplicaHealthReportServiceKind{Stateful, Stateless} +} + +// ReplicaKind enumerates the values for replica kind. +type ReplicaKind string + +const ( + // ReplicaKindInvalid Represents an invalid replica kind. The value is zero. + ReplicaKindInvalid ReplicaKind = "Invalid" + // ReplicaKindKeyValueStore Represents a key value store replica. The value is 1 + ReplicaKindKeyValueStore ReplicaKind = "KeyValueStore" +) + +// PossibleReplicaKindValues returns an array of possible values for the ReplicaKind const type. +func PossibleReplicaKindValues() []ReplicaKind { + return []ReplicaKind{ReplicaKindInvalid, ReplicaKindKeyValueStore} +} + +// ReplicaRole enumerates the values for replica role. +type ReplicaRole string + +const ( + // ReplicaRoleActiveSecondary Refers to a replica in the set that receives state updates from the Primary + // replica, applies them, and sends acknowledgements back. Secondary replicas must participate in the write + // quorum for a replica set. There can be multiple active Secondary replicas in a replica set at a time. + // The number of active Secondary replicas is configurable that the reliability subsystem should maintain. + // The value is 4. + ReplicaRoleActiveSecondary ReplicaRole = "ActiveSecondary" + // ReplicaRoleIdleSecondary Refers to a replica in the set that receives a state transfer from the Primary + // replica to prepare for becoming an active Secondary replica. There can be multiple Idle Secondary + // replicas in a replica set at a time. Idle Secondary replicas do not count as a part of a write quorum. + // The value is 3. + ReplicaRoleIdleSecondary ReplicaRole = "IdleSecondary" + // ReplicaRoleNone Specifies that the replica has no responsibility in regard to the replica set. The value + // is 1 + ReplicaRoleNone ReplicaRole = "None" + // ReplicaRolePrimary Refers to the replica in the set on which all read and write operations are complete + // in order to enforce strong consistency semantics. Read operations are handled directly by the Primary + // replica, while write operations must be acknowledged by a quorum of the replicas in the replica set. + // There can only be one Primary replica in a replica set at a time. The value is 2. + ReplicaRolePrimary ReplicaRole = "Primary" + // ReplicaRoleUnknown Indicates the initial role that a replica is created in. The value is zero. + ReplicaRoleUnknown ReplicaRole = "Unknown" +) + +// PossibleReplicaRoleValues returns an array of possible values for the ReplicaRole const type. +func PossibleReplicaRoleValues() []ReplicaRole { + return []ReplicaRole{ReplicaRoleActiveSecondary, ReplicaRoleIdleSecondary, ReplicaRoleNone, ReplicaRolePrimary, ReplicaRoleUnknown} +} + +// ReplicaStatus enumerates the values for replica status. +type ReplicaStatus string + +const ( + // ReplicaStatusDown The replica is down. The value is 4. + ReplicaStatusDown ReplicaStatus = "Down" + // ReplicaStatusDropped Replica is dropped. This means that the replica has been removed from the replica + // set. If it is persisted, its state has been deleted. The value is 5. + ReplicaStatusDropped ReplicaStatus = "Dropped" + // ReplicaStatusInBuild The replica is being built. This means that a primary replica is seeding this + // replica. The value is 1. + ReplicaStatusInBuild ReplicaStatus = "InBuild" + // ReplicaStatusInvalid Indicates the replica status is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + ReplicaStatusInvalid ReplicaStatus = "Invalid" + // ReplicaStatusReady The replica is ready. The value is 3. + ReplicaStatusReady ReplicaStatus = "Ready" + // ReplicaStatusStandby The replica is in standby. The value is 2. + ReplicaStatusStandby ReplicaStatus = "Standby" +) + +// PossibleReplicaStatusValues returns an array of possible values for the ReplicaStatus const type. +func PossibleReplicaStatusValues() []ReplicaStatus { + return []ReplicaStatus{ReplicaStatusDown, ReplicaStatusDropped, ReplicaStatusInBuild, ReplicaStatusInvalid, ReplicaStatusReady, ReplicaStatusStandby} +} + +// ReplicatorOperationName enumerates the values for replicator operation name. +type ReplicatorOperationName string + +const ( + // ReplicatorOperationNameAbort Replicator is being aborted. + ReplicatorOperationNameAbort ReplicatorOperationName = "Abort" + // ReplicatorOperationNameBuild Replicator is in the process of building one or more replicas. + ReplicatorOperationNameBuild ReplicatorOperationName = "Build" + // ReplicatorOperationNameChangeRole Replicator is in the process of changing its role. + ReplicatorOperationNameChangeRole ReplicatorOperationName = "ChangeRole" + // ReplicatorOperationNameClose Replicator is closing. + ReplicatorOperationNameClose ReplicatorOperationName = "Close" + // ReplicatorOperationNameInvalid Default value if the replicator is not yet ready. + ReplicatorOperationNameInvalid ReplicatorOperationName = "Invalid" + // ReplicatorOperationNameNone Replicator is not running any operation from Service Fabric perspective. + ReplicatorOperationNameNone ReplicatorOperationName = "None" + // ReplicatorOperationNameOnDataLoss Replicator is handling the data loss condition, where the user service + // may potentially be recovering state from an external source. + ReplicatorOperationNameOnDataLoss ReplicatorOperationName = "OnDataLoss" + // ReplicatorOperationNameOpen Replicator is opening. + ReplicatorOperationNameOpen ReplicatorOperationName = "Open" + // ReplicatorOperationNameUpdateEpoch Due to a change in the replica set, replicator is being updated with + // its Epoch. + ReplicatorOperationNameUpdateEpoch ReplicatorOperationName = "UpdateEpoch" + // ReplicatorOperationNameWaitForCatchup Replicator is waiting for a quorum of replicas to be caught up to + // the latest state. + ReplicatorOperationNameWaitForCatchup ReplicatorOperationName = "WaitForCatchup" +) + +// PossibleReplicatorOperationNameValues returns an array of possible values for the ReplicatorOperationName const type. +func PossibleReplicatorOperationNameValues() []ReplicatorOperationName { + return []ReplicatorOperationName{ReplicatorOperationNameAbort, ReplicatorOperationNameBuild, ReplicatorOperationNameChangeRole, ReplicatorOperationNameClose, ReplicatorOperationNameInvalid, ReplicatorOperationNameNone, ReplicatorOperationNameOnDataLoss, ReplicatorOperationNameOpen, ReplicatorOperationNameUpdateEpoch, ReplicatorOperationNameWaitForCatchup} +} + +// RestartPartitionMode enumerates the values for restart partition mode. +type RestartPartitionMode string + +const ( + // RestartPartitionModeAllReplicasOrInstances All replicas or instances in the partition are restarted at + // once. + RestartPartitionModeAllReplicasOrInstances RestartPartitionMode = "AllReplicasOrInstances" + // RestartPartitionModeInvalid Reserved. Do not pass into API. + RestartPartitionModeInvalid RestartPartitionMode = "Invalid" + // RestartPartitionModeOnlyActiveSecondaries Only the secondary replicas are restarted. + RestartPartitionModeOnlyActiveSecondaries RestartPartitionMode = "OnlyActiveSecondaries" +) + +// PossibleRestartPartitionModeValues returns an array of possible values for the RestartPartitionMode const type. +func PossibleRestartPartitionModeValues() []RestartPartitionMode { + return []RestartPartitionMode{RestartPartitionModeAllReplicasOrInstances, RestartPartitionModeInvalid, RestartPartitionModeOnlyActiveSecondaries} +} + +// RestoreState enumerates the values for restore state. +type RestoreState string + +const ( + // RestoreStateAccepted Operation has been validated and accepted. Restore is yet to be triggered. + RestoreStateAccepted RestoreState = "Accepted" + // RestoreStateFailure Operation completed with failure. + RestoreStateFailure RestoreState = "Failure" + // RestoreStateInvalid Indicates an invalid restore state. All Service Fabric enumerations have the invalid + // type. + RestoreStateInvalid RestoreState = "Invalid" + // RestoreStateRestoreInProgress Restore operation has been triggered and is under process. + RestoreStateRestoreInProgress RestoreState = "RestoreInProgress" + // RestoreStateSuccess Operation completed with success. + RestoreStateSuccess RestoreState = "Success" + // RestoreStateTimeout Operation timed out. + RestoreStateTimeout RestoreState = "Timeout" +) + +// PossibleRestoreStateValues returns an array of possible values for the RestoreState const type. +func PossibleRestoreStateValues() []RestoreState { + return []RestoreState{RestoreStateAccepted, RestoreStateFailure, RestoreStateInvalid, RestoreStateRestoreInProgress, RestoreStateSuccess, RestoreStateTimeout} +} + +// ResultStatus enumerates the values for result status. +type ResultStatus string + +const ( + // ResultStatusCancelled Indicates that the repair task was cancelled prior to execution. + ResultStatusCancelled ResultStatus = "Cancelled" + // ResultStatusFailed Indicates that there was a failure during execution of the repair task. Some work may + // have been performed. + ResultStatusFailed ResultStatus = "Failed" + // ResultStatusInterrupted Indicates that execution of the repair task was interrupted by a cancellation + // request after some work had already been performed. + ResultStatusInterrupted ResultStatus = "Interrupted" + // ResultStatusInvalid Indicates that the repair task result is invalid. All Service Fabric enumerations + // have the invalid value. + ResultStatusInvalid ResultStatus = "Invalid" + // ResultStatusPending Indicates that the repair task result is not yet available, because the repair task + // has not finished executing. + ResultStatusPending ResultStatus = "Pending" + // ResultStatusSucceeded Indicates that the repair task completed execution successfully. + ResultStatusSucceeded ResultStatus = "Succeeded" +) + +// PossibleResultStatusValues returns an array of possible values for the ResultStatus const type. +func PossibleResultStatusValues() []ResultStatus { + return []ResultStatus{ResultStatusCancelled, ResultStatusFailed, ResultStatusInterrupted, ResultStatusInvalid, ResultStatusPending, ResultStatusSucceeded} +} + +// SafetyCheckKind enumerates the values for safety check kind. +type SafetyCheckKind string + +const ( + // SafetyCheckKindEnsureAvailability Indicates that there is either a stateless service partition on the + // node having exactly one instance, or there is a primary replica on the node for which the partition is + // quorum loss. In both cases, bringing down the replicas due to upgrade will result in loss of + // availability. The value is 7. + SafetyCheckKindEnsureAvailability SafetyCheckKind = "EnsureAvailability" + // SafetyCheckKindEnsurePartitionQuorum Indicates that there is some partition for which if we bring down + // the replica on the node, it will result in quorum loss for that partition. The value is 2. + SafetyCheckKindEnsurePartitionQuorum SafetyCheckKind = "EnsurePartitionQuorum" + // SafetyCheckKindEnsureSeedNodeQuorum Indicates that if we bring down the node then this will result in + // global seed node quorum loss. The value is 1. + SafetyCheckKindEnsureSeedNodeQuorum SafetyCheckKind = "EnsureSeedNodeQuorum" + // SafetyCheckKindInvalid Indicates that the upgrade safety check kind is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + SafetyCheckKindInvalid SafetyCheckKind = "Invalid" + // SafetyCheckKindWaitForInbuildReplica Indicates that there is either a replica on the node that is going + // through copy, or there is a primary replica on the node that is copying data to some other replica. In + // both cases, bringing down the replica on the node due to upgrade will abort the copy. The value is 6. + SafetyCheckKindWaitForInbuildReplica SafetyCheckKind = "WaitForInbuildReplica" + // SafetyCheckKindWaitForPrimaryPlacement Indicates that there is some replica on the node that was moved + // out of this node due to upgrade. Service Fabric is now waiting for the primary to be moved back to this + // node. The value is 3. + SafetyCheckKindWaitForPrimaryPlacement SafetyCheckKind = "WaitForPrimaryPlacement" + // SafetyCheckKindWaitForPrimarySwap Indicates that Service Fabric is waiting for a primary replica to be + // moved out of the node before starting upgrade on that node. The value is 4. + SafetyCheckKindWaitForPrimarySwap SafetyCheckKind = "WaitForPrimarySwap" + // SafetyCheckKindWaitForReconfiguration Indicates that there is some replica on the node that is involved + // in a reconfiguration. Service Fabric is waiting for the reconfiguration to be complete before staring + // upgrade on that node. The value is 5. + SafetyCheckKindWaitForReconfiguration SafetyCheckKind = "WaitForReconfiguration" +) + +// PossibleSafetyCheckKindValues returns an array of possible values for the SafetyCheckKind const type. +func PossibleSafetyCheckKindValues() []SafetyCheckKind { + return []SafetyCheckKind{SafetyCheckKindEnsureAvailability, SafetyCheckKindEnsurePartitionQuorum, SafetyCheckKindEnsureSeedNodeQuorum, SafetyCheckKindInvalid, SafetyCheckKindWaitForInbuildReplica, SafetyCheckKindWaitForPrimaryPlacement, SafetyCheckKindWaitForPrimarySwap, SafetyCheckKindWaitForReconfiguration} +} + +// ScalingMechanismKind enumerates the values for scaling mechanism kind. +type ScalingMechanismKind string + +const ( + // ScalingMechanismKindAddRemoveIncrementalNamedPartition Indicates a mechanism for scaling where new named + // partitions are added or removed from a service. The value is 2. + ScalingMechanismKindAddRemoveIncrementalNamedPartition ScalingMechanismKind = "AddRemoveIncrementalNamedPartition" + // ScalingMechanismKindInvalid Indicates the scaling mechanism is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ScalingMechanismKindInvalid ScalingMechanismKind = "Invalid" + // ScalingMechanismKindPartitionInstanceCount Indicates a mechanism for scaling where new instances are + // added or removed from a partition. The value is 1. + ScalingMechanismKindPartitionInstanceCount ScalingMechanismKind = "PartitionInstanceCount" +) + +// PossibleScalingMechanismKindValues returns an array of possible values for the ScalingMechanismKind const type. +func PossibleScalingMechanismKindValues() []ScalingMechanismKind { + return []ScalingMechanismKind{ScalingMechanismKindAddRemoveIncrementalNamedPartition, ScalingMechanismKindInvalid, ScalingMechanismKindPartitionInstanceCount} +} + +// ScalingTriggerKind enumerates the values for scaling trigger kind. +type ScalingTriggerKind string + +const ( + // ScalingTriggerKindAveragePartitionLoad Indicates a trigger where scaling decisions are made based on + // average load of a partition. The value is 1. + ScalingTriggerKindAveragePartitionLoad ScalingTriggerKind = "AveragePartitionLoad" + // ScalingTriggerKindAverageServiceLoad Indicates a trigger where scaling decisions are made based on + // average load of a service. The value is 2. + ScalingTriggerKindAverageServiceLoad ScalingTriggerKind = "AverageServiceLoad" + // ScalingTriggerKindInvalid Indicates the scaling trigger is invalid. All Service Fabric enumerations have + // the invalid type. The value is zero. + ScalingTriggerKindInvalid ScalingTriggerKind = "Invalid" +) + +// PossibleScalingTriggerKindValues returns an array of possible values for the ScalingTriggerKind const type. +func PossibleScalingTriggerKindValues() []ScalingTriggerKind { + return []ScalingTriggerKind{ScalingTriggerKindAveragePartitionLoad, ScalingTriggerKindAverageServiceLoad, ScalingTriggerKindInvalid} +} + +// ScheduleKind enumerates the values for schedule kind. +type ScheduleKind string + +const ( + // ScheduleKindBackupScheduleDescription ... + ScheduleKindBackupScheduleDescription ScheduleKind = "BackupScheduleDescription" + // ScheduleKindFrequencyBased ... + ScheduleKindFrequencyBased ScheduleKind = "FrequencyBased" + // ScheduleKindTimeBased ... + ScheduleKindTimeBased ScheduleKind = "TimeBased" +) + +// PossibleScheduleKindValues returns an array of possible values for the ScheduleKind const type. +func PossibleScheduleKindValues() []ScheduleKind { + return []ScheduleKind{ScheduleKindBackupScheduleDescription, ScheduleKindFrequencyBased, ScheduleKindTimeBased} +} + +// ServiceCorrelationScheme enumerates the values for service correlation scheme. +type ServiceCorrelationScheme string + +const ( + // ServiceCorrelationSchemeAffinity Indicates that this service has an affinity relationship with another + // service. Provided for backwards compatibility, consider preferring the Aligned or NonAlignedAffinity + // options. The value is 1. + ServiceCorrelationSchemeAffinity ServiceCorrelationScheme = "Affinity" + // ServiceCorrelationSchemeAlignedAffinity Aligned affinity ensures that the primaries of the partitions of + // the affinitized services are collocated on the same nodes. This is the default and is the same as + // selecting the Affinity scheme. The value is 2. + ServiceCorrelationSchemeAlignedAffinity ServiceCorrelationScheme = "AlignedAffinity" + // ServiceCorrelationSchemeInvalid An invalid correlation scheme. Cannot be used. The value is zero. + ServiceCorrelationSchemeInvalid ServiceCorrelationScheme = "Invalid" + // ServiceCorrelationSchemeNonAlignedAffinity Non-Aligned affinity guarantees that all replicas of each + // service will be placed on the same nodes. Unlike Aligned Affinity, this does not guarantee that replicas + // of particular role will be collocated. The value is 3. + ServiceCorrelationSchemeNonAlignedAffinity ServiceCorrelationScheme = "NonAlignedAffinity" +) + +// PossibleServiceCorrelationSchemeValues returns an array of possible values for the ServiceCorrelationScheme const type. +func PossibleServiceCorrelationSchemeValues() []ServiceCorrelationScheme { + return []ServiceCorrelationScheme{ServiceCorrelationSchemeAffinity, ServiceCorrelationSchemeAlignedAffinity, ServiceCorrelationSchemeInvalid, ServiceCorrelationSchemeNonAlignedAffinity} +} + +// ServiceEndpointRole enumerates the values for service endpoint role. +type ServiceEndpointRole string + +const ( + // ServiceEndpointRoleInvalid Indicates the service endpoint role is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ServiceEndpointRoleInvalid ServiceEndpointRole = "Invalid" + // ServiceEndpointRoleStatefulPrimary Indicates that the service endpoint is of a primary replica of a + // stateful service. The value is 2. + ServiceEndpointRoleStatefulPrimary ServiceEndpointRole = "StatefulPrimary" + // ServiceEndpointRoleStatefulSecondary Indicates that the service endpoint is of a secondary replica of a + // stateful service. The value is 3. + ServiceEndpointRoleStatefulSecondary ServiceEndpointRole = "StatefulSecondary" + // ServiceEndpointRoleStateless Indicates that the service endpoint is of a stateless service. The value is + // 1. + ServiceEndpointRoleStateless ServiceEndpointRole = "Stateless" +) + +// PossibleServiceEndpointRoleValues returns an array of possible values for the ServiceEndpointRole const type. +func PossibleServiceEndpointRoleValues() []ServiceEndpointRole { + return []ServiceEndpointRole{ServiceEndpointRoleInvalid, ServiceEndpointRoleStatefulPrimary, ServiceEndpointRoleStatefulSecondary, ServiceEndpointRoleStateless} +} + +// ServiceKind enumerates the values for service kind. +type ServiceKind string + +const ( + // ServiceKindInvalid Indicates the service kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + ServiceKindInvalid ServiceKind = "Invalid" + // ServiceKindStateful Uses Service Fabric to make its state or part of its state highly available and + // reliable. The value is 2. + ServiceKindStateful ServiceKind = "Stateful" + // ServiceKindStateless Does not use Service Fabric to make its state highly available or reliable. The + // value is 1. + ServiceKindStateless ServiceKind = "Stateless" +) + +// PossibleServiceKindValues returns an array of possible values for the ServiceKind const type. +func PossibleServiceKindValues() []ServiceKind { + return []ServiceKind{ServiceKindInvalid, ServiceKindStateful, ServiceKindStateless} +} + +// ServiceKindBasicDeployedServiceReplicaDetailInfo enumerates the values for service kind basic deployed +// service replica detail info. +type ServiceKindBasicDeployedServiceReplicaDetailInfo string + +const ( + // ServiceKindDeployedServiceReplicaDetailInfo ... + ServiceKindDeployedServiceReplicaDetailInfo ServiceKindBasicDeployedServiceReplicaDetailInfo = "DeployedServiceReplicaDetailInfo" + // ServiceKindStateful1 ... + ServiceKindStateful1 ServiceKindBasicDeployedServiceReplicaDetailInfo = "Stateful" + // ServiceKindStateless1 ... + ServiceKindStateless1 ServiceKindBasicDeployedServiceReplicaDetailInfo = "Stateless" +) + +// PossibleServiceKindBasicDeployedServiceReplicaDetailInfoValues returns an array of possible values for the ServiceKindBasicDeployedServiceReplicaDetailInfo const type. +func PossibleServiceKindBasicDeployedServiceReplicaDetailInfoValues() []ServiceKindBasicDeployedServiceReplicaDetailInfo { + return []ServiceKindBasicDeployedServiceReplicaDetailInfo{ServiceKindDeployedServiceReplicaDetailInfo, ServiceKindStateful1, ServiceKindStateless1} +} + +// ServiceKindBasicDeployedServiceReplicaInfo enumerates the values for service kind basic deployed service +// replica info. +type ServiceKindBasicDeployedServiceReplicaInfo string + +const ( + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo ServiceKindBasicDeployedServiceReplicaInfo = "DeployedServiceReplicaInfo" + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful ServiceKindBasicDeployedServiceReplicaInfo = "Stateful" + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless ServiceKindBasicDeployedServiceReplicaInfo = "Stateless" +) + +// PossibleServiceKindBasicDeployedServiceReplicaInfoValues returns an array of possible values for the ServiceKindBasicDeployedServiceReplicaInfo const type. +func PossibleServiceKindBasicDeployedServiceReplicaInfoValues() []ServiceKindBasicDeployedServiceReplicaInfo { + return []ServiceKindBasicDeployedServiceReplicaInfo{ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo, ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful, ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless} +} + +// ServiceKindBasicReplicaHealth enumerates the values for service kind basic replica health. +type ServiceKindBasicReplicaHealth string + +const ( + // ServiceKindBasicReplicaHealthServiceKindReplicaHealth ... + ServiceKindBasicReplicaHealthServiceKindReplicaHealth ServiceKindBasicReplicaHealth = "ReplicaHealth" + // ServiceKindBasicReplicaHealthServiceKindStateful ... + ServiceKindBasicReplicaHealthServiceKindStateful ServiceKindBasicReplicaHealth = "Stateful" + // ServiceKindBasicReplicaHealthServiceKindStateless ... + ServiceKindBasicReplicaHealthServiceKindStateless ServiceKindBasicReplicaHealth = "Stateless" +) + +// PossibleServiceKindBasicReplicaHealthValues returns an array of possible values for the ServiceKindBasicReplicaHealth const type. +func PossibleServiceKindBasicReplicaHealthValues() []ServiceKindBasicReplicaHealth { + return []ServiceKindBasicReplicaHealth{ServiceKindBasicReplicaHealthServiceKindReplicaHealth, ServiceKindBasicReplicaHealthServiceKindStateful, ServiceKindBasicReplicaHealthServiceKindStateless} +} + +// ServiceKindBasicReplicaHealthState enumerates the values for service kind basic replica health state. +type ServiceKindBasicReplicaHealthState string + +const ( + // ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState ... + ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState ServiceKindBasicReplicaHealthState = "ReplicaHealthState" + // ServiceKindBasicReplicaHealthStateServiceKindStateful ... + ServiceKindBasicReplicaHealthStateServiceKindStateful ServiceKindBasicReplicaHealthState = "Stateful" + // ServiceKindBasicReplicaHealthStateServiceKindStateless ... + ServiceKindBasicReplicaHealthStateServiceKindStateless ServiceKindBasicReplicaHealthState = "Stateless" +) + +// PossibleServiceKindBasicReplicaHealthStateValues returns an array of possible values for the ServiceKindBasicReplicaHealthState const type. +func PossibleServiceKindBasicReplicaHealthStateValues() []ServiceKindBasicReplicaHealthState { + return []ServiceKindBasicReplicaHealthState{ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState, ServiceKindBasicReplicaHealthStateServiceKindStateful, ServiceKindBasicReplicaHealthStateServiceKindStateless} +} + +// ServiceKindBasicReplicaInfo enumerates the values for service kind basic replica info. +type ServiceKindBasicReplicaInfo string + +const ( + // ServiceKindBasicReplicaInfoServiceKindReplicaInfo ... + ServiceKindBasicReplicaInfoServiceKindReplicaInfo ServiceKindBasicReplicaInfo = "ReplicaInfo" + // ServiceKindBasicReplicaInfoServiceKindStateful ... + ServiceKindBasicReplicaInfoServiceKindStateful ServiceKindBasicReplicaInfo = "Stateful" + // ServiceKindBasicReplicaInfoServiceKindStateless ... + ServiceKindBasicReplicaInfoServiceKindStateless ServiceKindBasicReplicaInfo = "Stateless" +) + +// PossibleServiceKindBasicReplicaInfoValues returns an array of possible values for the ServiceKindBasicReplicaInfo const type. +func PossibleServiceKindBasicReplicaInfoValues() []ServiceKindBasicReplicaInfo { + return []ServiceKindBasicReplicaInfo{ServiceKindBasicReplicaInfoServiceKindReplicaInfo, ServiceKindBasicReplicaInfoServiceKindStateful, ServiceKindBasicReplicaInfoServiceKindStateless} +} + +// ServiceKindBasicServiceDescription enumerates the values for service kind basic service description. +type ServiceKindBasicServiceDescription string + +const ( + // ServiceKindBasicServiceDescriptionServiceKindServiceDescription ... + ServiceKindBasicServiceDescriptionServiceKindServiceDescription ServiceKindBasicServiceDescription = "ServiceDescription" + // ServiceKindBasicServiceDescriptionServiceKindStateful ... + ServiceKindBasicServiceDescriptionServiceKindStateful ServiceKindBasicServiceDescription = "Stateful" + // ServiceKindBasicServiceDescriptionServiceKindStateless ... + ServiceKindBasicServiceDescriptionServiceKindStateless ServiceKindBasicServiceDescription = "Stateless" +) + +// PossibleServiceKindBasicServiceDescriptionValues returns an array of possible values for the ServiceKindBasicServiceDescription const type. +func PossibleServiceKindBasicServiceDescriptionValues() []ServiceKindBasicServiceDescription { + return []ServiceKindBasicServiceDescription{ServiceKindBasicServiceDescriptionServiceKindServiceDescription, ServiceKindBasicServiceDescriptionServiceKindStateful, ServiceKindBasicServiceDescriptionServiceKindStateless} +} + +// ServiceKindBasicServiceInfo enumerates the values for service kind basic service info. +type ServiceKindBasicServiceInfo string + +const ( + // ServiceKindBasicServiceInfoServiceKindServiceInfo ... + ServiceKindBasicServiceInfoServiceKindServiceInfo ServiceKindBasicServiceInfo = "ServiceInfo" + // ServiceKindBasicServiceInfoServiceKindStateful ... + ServiceKindBasicServiceInfoServiceKindStateful ServiceKindBasicServiceInfo = "Stateful" + // ServiceKindBasicServiceInfoServiceKindStateless ... + ServiceKindBasicServiceInfoServiceKindStateless ServiceKindBasicServiceInfo = "Stateless" +) + +// PossibleServiceKindBasicServiceInfoValues returns an array of possible values for the ServiceKindBasicServiceInfo const type. +func PossibleServiceKindBasicServiceInfoValues() []ServiceKindBasicServiceInfo { + return []ServiceKindBasicServiceInfo{ServiceKindBasicServiceInfoServiceKindServiceInfo, ServiceKindBasicServiceInfoServiceKindStateful, ServiceKindBasicServiceInfoServiceKindStateless} +} + +// ServiceKindBasicServicePartitionInfo enumerates the values for service kind basic service partition info. +type ServiceKindBasicServicePartitionInfo string + +const ( + // ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo ... + ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo ServiceKindBasicServicePartitionInfo = "ServicePartitionInfo" + // ServiceKindBasicServicePartitionInfoServiceKindStateful ... + ServiceKindBasicServicePartitionInfoServiceKindStateful ServiceKindBasicServicePartitionInfo = "Stateful" + // ServiceKindBasicServicePartitionInfoServiceKindStateless ... + ServiceKindBasicServicePartitionInfoServiceKindStateless ServiceKindBasicServicePartitionInfo = "Stateless" +) + +// PossibleServiceKindBasicServicePartitionInfoValues returns an array of possible values for the ServiceKindBasicServicePartitionInfo const type. +func PossibleServiceKindBasicServicePartitionInfoValues() []ServiceKindBasicServicePartitionInfo { + return []ServiceKindBasicServicePartitionInfo{ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo, ServiceKindBasicServicePartitionInfoServiceKindStateful, ServiceKindBasicServicePartitionInfoServiceKindStateless} +} + +// ServiceKindBasicServiceUpdateDescription enumerates the values for service kind basic service update +// description. +type ServiceKindBasicServiceUpdateDescription string + +const ( + // ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription ... + ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription ServiceKindBasicServiceUpdateDescription = "ServiceUpdateDescription" + // ServiceKindBasicServiceUpdateDescriptionServiceKindStateful ... + ServiceKindBasicServiceUpdateDescriptionServiceKindStateful ServiceKindBasicServiceUpdateDescription = "Stateful" + // ServiceKindBasicServiceUpdateDescriptionServiceKindStateless ... + ServiceKindBasicServiceUpdateDescriptionServiceKindStateless ServiceKindBasicServiceUpdateDescription = "Stateless" +) + +// PossibleServiceKindBasicServiceUpdateDescriptionValues returns an array of possible values for the ServiceKindBasicServiceUpdateDescription const type. +func PossibleServiceKindBasicServiceUpdateDescriptionValues() []ServiceKindBasicServiceUpdateDescription { + return []ServiceKindBasicServiceUpdateDescription{ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription, ServiceKindBasicServiceUpdateDescriptionServiceKindStateful, ServiceKindBasicServiceUpdateDescriptionServiceKindStateless} +} + +// ServiceLoadMetricWeight enumerates the values for service load metric weight. +type ServiceLoadMetricWeight string + +const ( + // ServiceLoadMetricWeightHigh Specifies the metric weight of the service load as High. The value is 3. + ServiceLoadMetricWeightHigh ServiceLoadMetricWeight = "High" + // ServiceLoadMetricWeightLow Specifies the metric weight of the service load as Low. The value is 1. + ServiceLoadMetricWeightLow ServiceLoadMetricWeight = "Low" + // ServiceLoadMetricWeightMedium Specifies the metric weight of the service load as Medium. The value is 2. + ServiceLoadMetricWeightMedium ServiceLoadMetricWeight = "Medium" + // ServiceLoadMetricWeightZero Disables resource balancing for this metric. This value is zero. + ServiceLoadMetricWeightZero ServiceLoadMetricWeight = "Zero" +) + +// PossibleServiceLoadMetricWeightValues returns an array of possible values for the ServiceLoadMetricWeight const type. +func PossibleServiceLoadMetricWeightValues() []ServiceLoadMetricWeight { + return []ServiceLoadMetricWeight{ServiceLoadMetricWeightHigh, ServiceLoadMetricWeightLow, ServiceLoadMetricWeightMedium, ServiceLoadMetricWeightZero} +} + +// ServiceOperationName enumerates the values for service operation name. +type ServiceOperationName string + +const ( + // ServiceOperationNameAbort The service replica or instance is being aborted. + ServiceOperationNameAbort ServiceOperationName = "Abort" + // ServiceOperationNameChangeRole The service replica is changing roles. + ServiceOperationNameChangeRole ServiceOperationName = "ChangeRole" + // ServiceOperationNameClose The service replica or instance is being closed. + ServiceOperationNameClose ServiceOperationName = "Close" + // ServiceOperationNameNone The service replica or instance is not going through any life-cycle changes. + ServiceOperationNameNone ServiceOperationName = "None" + // ServiceOperationNameOpen The service replica or instance is being opened. + ServiceOperationNameOpen ServiceOperationName = "Open" + // ServiceOperationNameUnknown Reserved for future use. + ServiceOperationNameUnknown ServiceOperationName = "Unknown" +) + +// PossibleServiceOperationNameValues returns an array of possible values for the ServiceOperationName const type. +func PossibleServiceOperationNameValues() []ServiceOperationName { + return []ServiceOperationName{ServiceOperationNameAbort, ServiceOperationNameChangeRole, ServiceOperationNameClose, ServiceOperationNameNone, ServiceOperationNameOpen, ServiceOperationNameUnknown} +} + +// ServicePackageActivationMode enumerates the values for service package activation mode. +type ServicePackageActivationMode string + +const ( + // ExclusiveProcess With this activation mode, each replica or instance of service, on a given node, will + // have its own dedicated activation of service package on a node. The value is 1. + ExclusiveProcess ServicePackageActivationMode = "ExclusiveProcess" + // SharedProcess This is the default activation mode. With this activation mode, replicas or instances from + // different partition(s) of service, on a given node, will share same activation of service package on a + // node. The value is zero. + SharedProcess ServicePackageActivationMode = "SharedProcess" +) + +// PossibleServicePackageActivationModeValues returns an array of possible values for the ServicePackageActivationMode const type. +func PossibleServicePackageActivationModeValues() []ServicePackageActivationMode { + return []ServicePackageActivationMode{ExclusiveProcess, SharedProcess} +} + +// ServicePartitionKind enumerates the values for service partition kind. +type ServicePartitionKind string + +const ( + // ServicePartitionKindInt64Range Indicates that the partition is based on Int64 key ranges, and + // UniformInt64RangePartitionSchemeDescription was specified while creating the service. The value is 2. + ServicePartitionKindInt64Range ServicePartitionKind = "Int64Range" + // ServicePartitionKindInvalid Indicates the partition kind is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ServicePartitionKindInvalid ServicePartitionKind = "Invalid" + // ServicePartitionKindNamed Indicates that the partition is based on string names, and + // NamedPartitionInformation was specified while creating the service. The value is 3. + ServicePartitionKindNamed ServicePartitionKind = "Named" + // ServicePartitionKindSingleton Indicates that there is only one partition, and + // SingletonPartitionSchemeDescription was specified while creating the service. The value is 1. + ServicePartitionKindSingleton ServicePartitionKind = "Singleton" +) + +// PossibleServicePartitionKindValues returns an array of possible values for the ServicePartitionKind const type. +func PossibleServicePartitionKindValues() []ServicePartitionKind { + return []ServicePartitionKind{ServicePartitionKindInt64Range, ServicePartitionKindInvalid, ServicePartitionKindNamed, ServicePartitionKindSingleton} +} + +// ServicePartitionKindBasicPartitionInformation enumerates the values for service partition kind basic +// partition information. +type ServicePartitionKindBasicPartitionInformation string + +const ( + // ServicePartitionKindInt64Range1 ... + ServicePartitionKindInt64Range1 ServicePartitionKindBasicPartitionInformation = "Int64Range" + // ServicePartitionKindNamed1 ... + ServicePartitionKindNamed1 ServicePartitionKindBasicPartitionInformation = "Named" + // ServicePartitionKindPartitionInformation ... + ServicePartitionKindPartitionInformation ServicePartitionKindBasicPartitionInformation = "PartitionInformation" + // ServicePartitionKindSingleton1 ... + ServicePartitionKindSingleton1 ServicePartitionKindBasicPartitionInformation = "Singleton" +) + +// PossibleServicePartitionKindBasicPartitionInformationValues returns an array of possible values for the ServicePartitionKindBasicPartitionInformation const type. +func PossibleServicePartitionKindBasicPartitionInformationValues() []ServicePartitionKindBasicPartitionInformation { + return []ServicePartitionKindBasicPartitionInformation{ServicePartitionKindInt64Range1, ServicePartitionKindNamed1, ServicePartitionKindPartitionInformation, ServicePartitionKindSingleton1} +} + +// ServicePartitionStatus enumerates the values for service partition status. +type ServicePartitionStatus string + +const ( + // ServicePartitionStatusDeleting Indicates that the partition is being deleted. The value is 5. + ServicePartitionStatusDeleting ServicePartitionStatus = "Deleting" + // ServicePartitionStatusInQuorumLoss Indicates that the partition is in quorum loss. This means that + // number of replicas that are up and participating in a replica set is less than MinReplicaSetSize for + // this partition. The value is 3. + ServicePartitionStatusInQuorumLoss ServicePartitionStatus = "InQuorumLoss" + // ServicePartitionStatusInvalid Indicates the partition status is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ServicePartitionStatusInvalid ServicePartitionStatus = "Invalid" + // ServicePartitionStatusNotReady Indicates that the partition is not ready. This status is returned when + // none of the other states apply. The value is 2. + ServicePartitionStatusNotReady ServicePartitionStatus = "NotReady" + // ServicePartitionStatusReady Indicates that the partition is ready. This means that for a stateless + // service partition there is at least one instance that is up and for a stateful service partition the + // number of ready replicas is greater than or equal to the MinReplicaSetSize. The value is 1. + ServicePartitionStatusReady ServicePartitionStatus = "Ready" + // ServicePartitionStatusReconfiguring Indicates that the partition is undergoing reconfiguration of its + // replica sets. This can happen due to failover, upgrade, load balancing or addition or removal of + // replicas from the replica set. The value is 4. + ServicePartitionStatusReconfiguring ServicePartitionStatus = "Reconfiguring" +) + +// PossibleServicePartitionStatusValues returns an array of possible values for the ServicePartitionStatus const type. +func PossibleServicePartitionStatusValues() []ServicePartitionStatus { + return []ServicePartitionStatus{ServicePartitionStatusDeleting, ServicePartitionStatusInQuorumLoss, ServicePartitionStatusInvalid, ServicePartitionStatusNotReady, ServicePartitionStatusReady, ServicePartitionStatusReconfiguring} +} + +// ServicePlacementPolicyType enumerates the values for service placement policy type. +type ServicePlacementPolicyType string + +const ( + // ServicePlacementPolicyTypeInvalid Indicates the type of the placement policy is invalid. All Service + // Fabric enumerations have the invalid type. The value is zero. + ServicePlacementPolicyTypeInvalid ServicePlacementPolicyType = "Invalid" + // ServicePlacementPolicyTypeInvalidDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementInvalidDomainPolicyDescription, which indicates that a particular fault or upgrade + // domain cannot be used for placement of this service. The value is 1. + ServicePlacementPolicyTypeInvalidDomain ServicePlacementPolicyType = "InvalidDomain" + // ServicePlacementPolicyTypeNonPartiallyPlaceService Indicates that the ServicePlacementPolicyDescription + // is of type ServicePlacementNonPartiallyPlaceServicePolicyDescription, which indicates that if possible + // all replicas of a particular partition of the service should be placed atomically. The value is 5. + ServicePlacementPolicyTypeNonPartiallyPlaceService ServicePlacementPolicyType = "NonPartiallyPlaceService" + // ServicePlacementPolicyTypePreferredPrimaryDomain Indicates that the ServicePlacementPolicyDescription is + // of type ServicePlacementPreferPrimaryDomainPolicyDescription, which indicates that if possible the + // Primary replica for the partitions of the service should be located in a particular domain as an + // optimization. The value is 3. + ServicePlacementPolicyTypePreferredPrimaryDomain ServicePlacementPolicyType = "PreferredPrimaryDomain" + // ServicePlacementPolicyTypeRequiredDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementRequireDomainDistributionPolicyDescription indicating that the replicas of the service + // must be placed in a specific domain. The value is 2. + ServicePlacementPolicyTypeRequiredDomain ServicePlacementPolicyType = "RequiredDomain" + // ServicePlacementPolicyTypeRequiredDomainDistribution Indicates that the + // ServicePlacementPolicyDescription is of type ServicePlacementRequireDomainDistributionPolicyDescription, + // indicating that the system will disallow placement of any two replicas from the same partition in the + // same domain at any time. The value is 4. + ServicePlacementPolicyTypeRequiredDomainDistribution ServicePlacementPolicyType = "RequiredDomainDistribution" +) + +// PossibleServicePlacementPolicyTypeValues returns an array of possible values for the ServicePlacementPolicyType const type. +func PossibleServicePlacementPolicyTypeValues() []ServicePlacementPolicyType { + return []ServicePlacementPolicyType{ServicePlacementPolicyTypeInvalid, ServicePlacementPolicyTypeInvalidDomain, ServicePlacementPolicyTypeNonPartiallyPlaceService, ServicePlacementPolicyTypePreferredPrimaryDomain, ServicePlacementPolicyTypeRequiredDomain, ServicePlacementPolicyTypeRequiredDomainDistribution} +} + +// ServiceResourceStatus enumerates the values for service resource status. +type ServiceResourceStatus string + +const ( + // ServiceResourceStatusActive ... + ServiceResourceStatusActive ServiceResourceStatus = "Active" + // ServiceResourceStatusCreating ... + ServiceResourceStatusCreating ServiceResourceStatus = "Creating" + // ServiceResourceStatusDeleting ... + ServiceResourceStatusDeleting ServiceResourceStatus = "Deleting" + // ServiceResourceStatusFailed ... + ServiceResourceStatusFailed ServiceResourceStatus = "Failed" + // ServiceResourceStatusUnknown ... + ServiceResourceStatusUnknown ServiceResourceStatus = "Unknown" + // ServiceResourceStatusUpgrading ... + ServiceResourceStatusUpgrading ServiceResourceStatus = "Upgrading" +) + +// PossibleServiceResourceStatusValues returns an array of possible values for the ServiceResourceStatus const type. +func PossibleServiceResourceStatusValues() []ServiceResourceStatus { + return []ServiceResourceStatus{ServiceResourceStatusActive, ServiceResourceStatusCreating, ServiceResourceStatusDeleting, ServiceResourceStatusFailed, ServiceResourceStatusUnknown, ServiceResourceStatusUpgrading} +} + +// ServiceStatus enumerates the values for service status. +type ServiceStatus string + +const ( + // ServiceStatusActive Indicates the service status is active. The value is 1. + ServiceStatusActive ServiceStatus = "Active" + // ServiceStatusCreating Indicates the service is being created. The value is 4. + ServiceStatusCreating ServiceStatus = "Creating" + // ServiceStatusDeleting Indicates the service is being deleted. The value is 3. + ServiceStatusDeleting ServiceStatus = "Deleting" + // ServiceStatusFailed Indicates creation or deletion was terminated due to persistent failures. Another + // create/delete request can be accepted. The value is 5. + ServiceStatusFailed ServiceStatus = "Failed" + // ServiceStatusUnknown Indicates the service status is unknown. The value is zero. + ServiceStatusUnknown ServiceStatus = "Unknown" + // ServiceStatusUpgrading Indicates the service is upgrading. The value is 2. + ServiceStatusUpgrading ServiceStatus = "Upgrading" +) + +// PossibleServiceStatusValues returns an array of possible values for the ServiceStatus const type. +func PossibleServiceStatusValues() []ServiceStatus { + return []ServiceStatus{ServiceStatusActive, ServiceStatusCreating, ServiceStatusDeleting, ServiceStatusFailed, ServiceStatusUnknown, ServiceStatusUpgrading} +} + +// ServiceTypeRegistrationStatus enumerates the values for service type registration status. +type ServiceTypeRegistrationStatus string + +const ( + // ServiceTypeRegistrationStatusDisabled Indicates that the service type is disabled on this node. A type + // gets disabled when there are too many failures of the code package hosting the service type. If the + // service type is disabled, new replicas of that service type will not be placed on the node until it is + // enabled again. The service type is enabled again after the process hosting it comes up and re-registers + // the type or a preconfigured time interval has passed. The value is 1. + ServiceTypeRegistrationStatusDisabled ServiceTypeRegistrationStatus = "Disabled" + // ServiceTypeRegistrationStatusEnabled Indicates that the service type is enabled on this node. Replicas + // of this service type can be placed on this node when the code package registers the service type. The + // value is 2. + ServiceTypeRegistrationStatusEnabled ServiceTypeRegistrationStatus = "Enabled" + // ServiceTypeRegistrationStatusInvalid Indicates the registration status is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ServiceTypeRegistrationStatusInvalid ServiceTypeRegistrationStatus = "Invalid" + // ServiceTypeRegistrationStatusRegistered Indicates that the service type is enabled and registered on the + // node by a code package. Replicas of this service type can now be placed on this node. The value is 3. + ServiceTypeRegistrationStatusRegistered ServiceTypeRegistrationStatus = "Registered" +) + +// PossibleServiceTypeRegistrationStatusValues returns an array of possible values for the ServiceTypeRegistrationStatus const type. +func PossibleServiceTypeRegistrationStatusValues() []ServiceTypeRegistrationStatus { + return []ServiceTypeRegistrationStatus{ServiceTypeRegistrationStatusDisabled, ServiceTypeRegistrationStatusEnabled, ServiceTypeRegistrationStatusInvalid, ServiceTypeRegistrationStatusRegistered} +} + +// State enumerates the values for state. +type State string + +const ( + // StateApproved Indicates that the repair task has been approved by the Repair Manager and is safe to + // execute. + StateApproved State = "Approved" + // StateClaimed Indicates that the repair task has been claimed by a repair executor. + StateClaimed State = "Claimed" + // StateCompleted Indicates that the repair task has completed, and no further state changes will occur. + StateCompleted State = "Completed" + // StateCreated Indicates that the repair task has been created. + StateCreated State = "Created" + // StateExecuting Indicates that execution of the repair task is in progress. + StateExecuting State = "Executing" + // StateInvalid Indicates that the repair task state is invalid. All Service Fabric enumerations have the + // invalid value. + StateInvalid State = "Invalid" + // StatePreparing Indicates that the Repair Manager is preparing the system to handle the impact of the + // repair task, usually by taking resources offline gracefully. + StatePreparing State = "Preparing" + // StateRestoring Indicates that the Repair Manager is restoring the system to its pre-repair state, + // usually by bringing resources back online. + StateRestoring State = "Restoring" +) + +// PossibleStateValues returns an array of possible values for the State const type. +func PossibleStateValues() []State { + return []State{StateApproved, StateClaimed, StateCompleted, StateCreated, StateExecuting, StateInvalid, StatePreparing, StateRestoring} +} + +// StorageKind enumerates the values for storage kind. +type StorageKind string + +const ( + // StorageKindAzureBlobStore ... + StorageKindAzureBlobStore StorageKind = "AzureBlobStore" + // StorageKindBackupStorageDescription ... + StorageKindBackupStorageDescription StorageKind = "BackupStorageDescription" + // StorageKindFileShare ... + StorageKindFileShare StorageKind = "FileShare" +) + +// PossibleStorageKindValues returns an array of possible values for the StorageKind const type. +func PossibleStorageKindValues() []StorageKind { + return []StorageKind{StorageKindAzureBlobStore, StorageKindBackupStorageDescription, StorageKindFileShare} +} + +// Type enumerates the values for type. +type Type string + +const ( + // TypeInvalidDomain ... + TypeInvalidDomain Type = "InvalidDomain" + // TypeNonPartiallyPlaceService ... + TypeNonPartiallyPlaceService Type = "NonPartiallyPlaceService" + // TypePreferredPrimaryDomain ... + TypePreferredPrimaryDomain Type = "PreferredPrimaryDomain" + // TypeRequiredDomain ... + TypeRequiredDomain Type = "RequiredDomain" + // TypeRequiredDomainDistribution ... + TypeRequiredDomainDistribution Type = "RequiredDomainDistribution" + // TypeServicePlacementPolicyDescription ... + TypeServicePlacementPolicyDescription Type = "ServicePlacementPolicyDescription" +) + +// PossibleTypeValues returns an array of possible values for the Type const type. +func PossibleTypeValues() []Type { + return []Type{TypeInvalidDomain, TypeNonPartiallyPlaceService, TypePreferredPrimaryDomain, TypeRequiredDomain, TypeRequiredDomainDistribution, TypeServicePlacementPolicyDescription} +} + +// UpgradeDomainState enumerates the values for upgrade domain state. +type UpgradeDomainState string + +const ( + // UpgradeDomainStateCompleted The upgrade domain has completed upgrade. The value is 3 + UpgradeDomainStateCompleted UpgradeDomainState = "Completed" + // UpgradeDomainStateInProgress The upgrade domain is being upgraded but not complete yet. The value is 2 + UpgradeDomainStateInProgress UpgradeDomainState = "InProgress" + // UpgradeDomainStateInvalid Indicates the upgrade domain state is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + UpgradeDomainStateInvalid UpgradeDomainState = "Invalid" + // UpgradeDomainStatePending The upgrade domain has not started upgrading yet. The value is 1 + UpgradeDomainStatePending UpgradeDomainState = "Pending" +) + +// PossibleUpgradeDomainStateValues returns an array of possible values for the UpgradeDomainState const type. +func PossibleUpgradeDomainStateValues() []UpgradeDomainState { + return []UpgradeDomainState{UpgradeDomainStateCompleted, UpgradeDomainStateInProgress, UpgradeDomainStateInvalid, UpgradeDomainStatePending} +} + +// UpgradeKind enumerates the values for upgrade kind. +type UpgradeKind string + +const ( + // UpgradeKindInvalid Indicates the upgrade kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeKindInvalid UpgradeKind = "Invalid" + // UpgradeKindRolling The upgrade progresses one upgrade domain at a time. The value is 1 + UpgradeKindRolling UpgradeKind = "Rolling" +) + +// PossibleUpgradeKindValues returns an array of possible values for the UpgradeKind const type. +func PossibleUpgradeKindValues() []UpgradeKind { + return []UpgradeKind{UpgradeKindInvalid, UpgradeKindRolling} +} + +// UpgradeMode enumerates the values for upgrade mode. +type UpgradeMode string + +const ( + // UpgradeModeInvalid Indicates the upgrade mode is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeModeInvalid UpgradeMode = "Invalid" + // UpgradeModeMonitored The upgrade will stop after completing each upgrade domain and automatically + // monitor health before proceeding. The value is 3 + UpgradeModeMonitored UpgradeMode = "Monitored" + // UpgradeModeUnmonitoredAuto The upgrade will proceed automatically without performing any health + // monitoring. The value is 1 + UpgradeModeUnmonitoredAuto UpgradeMode = "UnmonitoredAuto" + // UpgradeModeUnmonitoredManual The upgrade will stop after completing each upgrade domain, giving the + // opportunity to manually monitor health before proceeding. The value is 2 + UpgradeModeUnmonitoredManual UpgradeMode = "UnmonitoredManual" +) + +// PossibleUpgradeModeValues returns an array of possible values for the UpgradeMode const type. +func PossibleUpgradeModeValues() []UpgradeMode { + return []UpgradeMode{UpgradeModeInvalid, UpgradeModeMonitored, UpgradeModeUnmonitoredAuto, UpgradeModeUnmonitoredManual} +} + +// UpgradeState enumerates the values for upgrade state. +type UpgradeState string + +const ( + // UpgradeStateFailed The upgrade has failed and is unable to execute FailureAction. The value is 6 + UpgradeStateFailed UpgradeState = "Failed" + // UpgradeStateInvalid Indicates the upgrade state is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeStateInvalid UpgradeState = "Invalid" + // UpgradeStateRollingBackCompleted The upgrade has finished rolling back. The value is 2 + UpgradeStateRollingBackCompleted UpgradeState = "RollingBackCompleted" + // UpgradeStateRollingBackInProgress The upgrade is rolling back to the previous version but is not + // complete yet. The value is 1 + UpgradeStateRollingBackInProgress UpgradeState = "RollingBackInProgress" + // UpgradeStateRollingForwardCompleted The upgrade has finished rolling forward. The value is 5 + UpgradeStateRollingForwardCompleted UpgradeState = "RollingForwardCompleted" + // UpgradeStateRollingForwardInProgress The upgrade is rolling forward to the target version but is not + // complete yet. The value is 4 + UpgradeStateRollingForwardInProgress UpgradeState = "RollingForwardInProgress" + // UpgradeStateRollingForwardPending The current upgrade domain has finished upgrading. The overall upgrade + // is waiting for an explicit move next request in UnmonitoredManual mode or performing health checks in + // Monitored mode. The value is 3 + UpgradeStateRollingForwardPending UpgradeState = "RollingForwardPending" +) + +// PossibleUpgradeStateValues returns an array of possible values for the UpgradeState const type. +func PossibleUpgradeStateValues() []UpgradeState { + return []UpgradeState{UpgradeStateFailed, UpgradeStateInvalid, UpgradeStateRollingBackCompleted, UpgradeStateRollingBackInProgress, UpgradeStateRollingForwardCompleted, UpgradeStateRollingForwardInProgress, UpgradeStateRollingForwardPending} +} + +// UpgradeType enumerates the values for upgrade type. +type UpgradeType string + +const ( + // UpgradeTypeInvalid Indicates the upgrade kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeTypeInvalid UpgradeType = "Invalid" + // UpgradeTypeRolling The upgrade progresses one upgrade domain at a time. The value is 1. + UpgradeTypeRolling UpgradeType = "Rolling" + // UpgradeTypeRollingForceRestart The upgrade gets restarted by force. The value is 2. + UpgradeTypeRollingForceRestart UpgradeType = "Rolling_ForceRestart" +) + +// PossibleUpgradeTypeValues returns an array of possible values for the UpgradeType const type. +func PossibleUpgradeTypeValues() []UpgradeType { + return []UpgradeType{UpgradeTypeInvalid, UpgradeTypeRolling, UpgradeTypeRollingForceRestart} +} + +// AadMetadata azure Active Directory metadata used for secured connection to cluster. +type AadMetadata struct { + // Authority - The AAD authority url. + Authority *string `json:"authority,omitempty"` + // Client - The AAD client application Id. + Client *string `json:"client,omitempty"` + // Cluster - The AAD cluster application Id. + Cluster *string `json:"cluster,omitempty"` + // Login - The AAD login url. + Login *string `json:"login,omitempty"` + // Redirect - The client application redirect address. + Redirect *string `json:"redirect,omitempty"` + // Tenant - The AAD tenant Id. + Tenant *string `json:"tenant,omitempty"` +} + +// AadMetadataObject azure Active Directory metadata object used for secured connection to cluster. +type AadMetadataObject struct { + autorest.Response `json:"-"` + // Type - The client authentication method. + Type *string `json:"type,omitempty"` + // Metadata - Azure Active Directory metadata used for secured connection to cluster. + Metadata *AadMetadata `json:"metadata,omitempty"` +} + +// AddRemoveIncrementalNamedPartitionScalingMechanism represents a scaling mechanism for adding or removing +// named partitions of a stateless service. Partition names are in the format '0','1''N-1' +type AddRemoveIncrementalNamedPartitionScalingMechanism struct { + // MinPartitionCount - Minimum number of named partitions of the service. + MinPartitionCount *int32 `json:"MinPartitionCount,omitempty"` + // MaxPartitionCount - Maximum number of named partitions of the service. + MaxPartitionCount *int32 `json:"MaxPartitionCount,omitempty"` + // ScaleIncrement - The number of instances to add or remove during a scaling operation. + ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"` + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) MarshalJSON() ([]byte, error) { + arinpsm.Kind = KindAddRemoveIncrementalNamedPartition + objectMap := make(map[string]interface{}) + if arinpsm.MinPartitionCount != nil { + objectMap["MinPartitionCount"] = arinpsm.MinPartitionCount + } + if arinpsm.MaxPartitionCount != nil { + objectMap["MaxPartitionCount"] = arinpsm.MaxPartitionCount + } + if arinpsm.ScaleIncrement != nil { + objectMap["ScaleIncrement"] = arinpsm.ScaleIncrement + } + if arinpsm.Kind != "" { + objectMap["Kind"] = arinpsm.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return nil, false +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return &arinpsm, true +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return nil, false +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &arinpsm, true +} + +// AnalysisEventMetadata metadata about an Analysis Event. +type AnalysisEventMetadata struct { + // Delay - The analysis delay. + Delay *string `json:"Delay,omitempty"` + // Duration - The duration of analysis. + Duration *string `json:"Duration,omitempty"` +} + +// ApplicationBackupConfigurationInfo backup configuration information for a specific Service Fabric +// application specifying what backup policy is being applied and suspend description, if any. +type ApplicationBackupConfigurationInfo struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + abci.Kind = KindBasicBackupConfigurationInfoKindApplication + objectMap := make(map[string]interface{}) + if abci.ApplicationName != nil { + objectMap["ApplicationName"] = abci.ApplicationName + } + if abci.PolicyName != nil { + objectMap["PolicyName"] = abci.PolicyName + } + if abci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = abci.PolicyInheritedFrom + } + if abci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = abci.SuspensionInfo + } + if abci.Kind != "" { + objectMap["Kind"] = abci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return &abci, true +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &abci, true +} + +// ApplicationBackupEntity identifies the Service Fabric application which is being backed up. +type ApplicationBackupEntity struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) MarshalJSON() ([]byte, error) { + abe.EntityKind = EntityKindApplication1 + objectMap := make(map[string]interface{}) + if abe.ApplicationName != nil { + objectMap["ApplicationName"] = abe.ApplicationName + } + if abe.EntityKind != "" { + objectMap["EntityKind"] = abe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return &abe, true +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &abe, true +} + +// ApplicationCapacityDescription describes capacity information for services of this application. This +// description can be used for describing the following. +// - Reserving the capacity for the services on the nodes +// - Limiting the total number of nodes that services of this application can run on +// - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of +// this application +type ApplicationCapacityDescription struct { + // MinimumNodes - The minimum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. If this property is set to zero, no capacity will be reserved. The value of this property cannot be more than the value of the MaximumNodes property. + MinimumNodes *int64 `json:"MinimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. By default, the value of this property is zero and it means that the services can be placed on any node. + MaximumNodes *int64 `json:"MaximumNodes,omitempty"` + // ApplicationMetrics - List of application capacity metric description. + ApplicationMetrics *[]ApplicationMetricDescription `json:"ApplicationMetrics,omitempty"` +} + +// ApplicationCreatedEvent application Created event. +type ApplicationCreatedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // ApplicationDefinitionKind - Application definition kind. + ApplicationDefinitionKind *string `json:"ApplicationDefinitionKind,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) MarshalJSON() ([]byte, error) { + ace.Kind = KindApplicationCreated + objectMap := make(map[string]interface{}) + if ace.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ace.ApplicationTypeName + } + if ace.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ace.ApplicationTypeVersion + } + if ace.ApplicationDefinitionKind != nil { + objectMap["ApplicationDefinitionKind"] = ace.ApplicationDefinitionKind + } + if ace.ApplicationID != nil { + objectMap["ApplicationId"] = ace.ApplicationID + } + if ace.EventInstanceID != nil { + objectMap["EventInstanceId"] = ace.EventInstanceID + } + if ace.TimeStamp != nil { + objectMap["TimeStamp"] = ace.TimeStamp + } + if ace.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ace.HasCorrelatedEvents + } + if ace.Kind != "" { + objectMap["Kind"] = ace.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ace, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return &ace, true +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ace, true +} + +// ApplicationDeletedEvent application Deleted event. +type ApplicationDeletedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) MarshalJSON() ([]byte, error) { + ade.Kind = KindApplicationDeleted + objectMap := make(map[string]interface{}) + if ade.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ade.ApplicationTypeName + } + if ade.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ade.ApplicationTypeVersion + } + if ade.ApplicationID != nil { + objectMap["ApplicationId"] = ade.ApplicationID + } + if ade.EventInstanceID != nil { + objectMap["EventInstanceId"] = ade.EventInstanceID + } + if ade.TimeStamp != nil { + objectMap["TimeStamp"] = ade.TimeStamp + } + if ade.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ade.HasCorrelatedEvents + } + if ade.Kind != "" { + objectMap["Kind"] = ade.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ade, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return &ade, true +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ade, true +} + +// ApplicationDescription describes a Service Fabric application. +type ApplicationDescription struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"TypeVersion,omitempty"` + // ParameterList - List of application parameters with overridden values from their default values specified in the application manifest. + ParameterList *[]ApplicationParameter `json:"ParameterList,omitempty"` + // ApplicationCapacity - Describes capacity information for services of this application. This description can be used for describing the following. + // - Reserving the capacity for the services on the nodes + // - Limiting the total number of nodes that services of this application can run on + // - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of this application + ApplicationCapacity *ApplicationCapacityDescription `json:"ApplicationCapacity,omitempty"` +} + +// BasicApplicationEvent represents the base for all Application Events. +type BasicApplicationEvent interface { + AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) + AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) + AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) + AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) + AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) + AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) + AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) + AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) + AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) + AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) + AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) + AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) + AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) + AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) + AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) + AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) + AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) + AsApplicationEvent() (*ApplicationEvent, bool) +} + +// ApplicationEvent represents the base for all Application Events. +type ApplicationEvent struct { + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicApplicationEvent(body []byte) (BasicApplicationEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplicationCreated): + var ace ApplicationCreatedEvent + err := json.Unmarshal(body, &ace) + return ace, err + case string(KindApplicationDeleted): + var ade ApplicationDeletedEvent + err := json.Unmarshal(body, &ade) + return ade, err + case string(KindApplicationHealthReportCreated): + var ahrce ApplicationHealthReportCreatedEvent + err := json.Unmarshal(body, &ahrce) + return ahrce, err + case string(KindApplicationHealthReportExpired): + var ahree ApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &ahree) + return ahree, err + case string(KindApplicationUpgradeComplete): + var auce ApplicationUpgradeCompleteEvent + err := json.Unmarshal(body, &auce) + return auce, err + case string(KindApplicationUpgradeDomainComplete): + var audce ApplicationUpgradeDomainCompleteEvent + err := json.Unmarshal(body, &audce) + return audce, err + case string(KindApplicationUpgradeRollbackComplete): + var aurce ApplicationUpgradeRollbackCompleteEvent + err := json.Unmarshal(body, &aurce) + return aurce, err + case string(KindApplicationUpgradeRollbackStart): + var aurse ApplicationUpgradeRollbackStartEvent + err := json.Unmarshal(body, &aurse) + return aurse, err + case string(KindApplicationUpgradeStart): + var ause ApplicationUpgradeStartEvent + err := json.Unmarshal(body, &ause) + return ause, err + case string(KindDeployedApplicationHealthReportCreated): + var dahrce DeployedApplicationHealthReportCreatedEvent + err := json.Unmarshal(body, &dahrce) + return dahrce, err + case string(KindDeployedApplicationHealthReportExpired): + var dahree DeployedApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &dahree) + return dahree, err + case string(KindProcessDeactivated): + var pde ProcessDeactivatedEvent + err := json.Unmarshal(body, &pde) + return pde, err + case string(KindContainerDeactivated): + var cde ContainerDeactivatedEvent + err := json.Unmarshal(body, &cde) + return cde, err + case string(KindDeployedServiceHealthReportCreated): + var dshrce DeployedServiceHealthReportCreatedEvent + err := json.Unmarshal(body, &dshrce) + return dshrce, err + case string(KindDeployedServiceHealthReportExpired): + var dshree DeployedServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &dshree) + return dshree, err + case string(KindChaosRestartCodePackageFaultScheduled): + var crcpfse ChaosRestartCodePackageFaultScheduledEvent + err := json.Unmarshal(body, &crcpfse) + return crcpfse, err + case string(KindChaosRestartCodePackageFaultCompleted): + var crcpfce ChaosRestartCodePackageFaultCompletedEvent + err := json.Unmarshal(body, &crcpfce) + return crcpfce, err + default: + var ae ApplicationEvent + err := json.Unmarshal(body, &ae) + return ae, err + } +} +func unmarshalBasicApplicationEventArray(body []byte) ([]BasicApplicationEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + aeArray := make([]BasicApplicationEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ae, err := unmarshalBasicApplicationEvent(*rawMessage) + if err != nil { + return nil, err + } + aeArray[index] = ae + } + return aeArray, nil +} + +// MarshalJSON is the custom marshaler for ApplicationEvent. +func (ae ApplicationEvent) MarshalJSON() ([]byte, error) { + ae.Kind = KindApplicationEvent + objectMap := make(map[string]interface{}) + if ae.ApplicationID != nil { + objectMap["ApplicationId"] = ae.ApplicationID + } + if ae.EventInstanceID != nil { + objectMap["EventInstanceId"] = ae.EventInstanceID + } + if ae.TimeStamp != nil { + objectMap["TimeStamp"] = ae.TimeStamp + } + if ae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ae.HasCorrelatedEvents + } + if ae.Kind != "" { + objectMap["Kind"] = ae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return &ae, true +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ae, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ae, true +} + +// ApplicationHealth represents the health of the application. Contains the application aggregated health +// state and the service and deployed application health states. +type ApplicationHealth struct { + autorest.Response `json:"-"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // ServiceHealthStates - Service health states as found in the health store. + ServiceHealthStates *[]ServiceHealthState `json:"ServiceHealthStates,omitempty"` + // DeployedApplicationHealthStates - Deployed application health states as found in the health store. + DeployedApplicationHealthStates *[]DeployedApplicationHealthState `json:"DeployedApplicationHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ApplicationHealthEvaluation represents health evaluation for an application, containing information +// about the data and the algorithm used by the health store to evaluate health. +type ApplicationHealthEvaluation struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + ahe.Kind = KindApplication + objectMap := make(map[string]interface{}) + if ahe.ApplicationName != nil { + objectMap["ApplicationName"] = ahe.ApplicationName + } + if ahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations + } + if ahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState + } + if ahe.Description != nil { + objectMap["Description"] = ahe.Description + } + if ahe.Kind != "" { + objectMap["Kind"] = ahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return &ahe, true +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ahe, true +} + +// ApplicationHealthPolicies defines the application health policy map used to evaluate the health of an +// application or one of its children entities. +type ApplicationHealthPolicies struct { + // ApplicationHealthPolicyMap - The wrapper that contains the map with application health policies used to evaluate specific applications in the cluster. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// ApplicationHealthPolicy defines a health policy used to evaluate the health of an application or one of +// its children entities. +type ApplicationHealthPolicy struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // MaxPercentUnhealthyDeployedApplications - The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. + // This is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"` + // DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type. + DefaultServiceTypeHealthPolicy *ServiceTypeHealthPolicy `json:"DefaultServiceTypeHealthPolicy,omitempty"` + // ServiceTypeHealthPolicyMap - The map with service type health policy per service type name. The map is empty by default. + ServiceTypeHealthPolicyMap *[]ServiceTypeHealthPolicyMapItem `json:"ServiceTypeHealthPolicyMap,omitempty"` +} + +// ApplicationHealthPolicyMapItem defines an item in ApplicationHealthPolicyMap. +type ApplicationHealthPolicyMapItem struct { + // Key - The key of the application health policy map item. This is the name of the application. + Key *string `json:"Key,omitempty"` + // Value - The value of the application health policy map item. This is the ApplicationHealthPolicy for this application. + Value *ApplicationHealthPolicy `json:"Value,omitempty"` +} + +// ApplicationHealthReportCreatedEvent application Health Report Created event. +type ApplicationHealthReportCreatedEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + ahrce.Kind = KindApplicationHealthReportCreated + objectMap := make(map[string]interface{}) + if ahrce.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = ahrce.ApplicationInstanceID + } + if ahrce.SourceID != nil { + objectMap["SourceId"] = ahrce.SourceID + } + if ahrce.Property != nil { + objectMap["Property"] = ahrce.Property + } + if ahrce.HealthState != nil { + objectMap["HealthState"] = ahrce.HealthState + } + if ahrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = ahrce.TimeToLiveMs + } + if ahrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = ahrce.SequenceNumber + } + if ahrce.Description != nil { + objectMap["Description"] = ahrce.Description + } + if ahrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = ahrce.RemoveWhenExpired + } + if ahrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = ahrce.SourceUtcTimestamp + } + if ahrce.ApplicationID != nil { + objectMap["ApplicationId"] = ahrce.ApplicationID + } + if ahrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = ahrce.EventInstanceID + } + if ahrce.TimeStamp != nil { + objectMap["TimeStamp"] = ahrce.TimeStamp + } + if ahrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ahrce.HasCorrelatedEvents + } + if ahrce.Kind != "" { + objectMap["Kind"] = ahrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ahrce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return &ahrce, true +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportCreatedEvent. +func (ahrce ApplicationHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ahrce, true +} + +// ApplicationHealthReportExpiredEvent application Health Report Expired event. +type ApplicationHealthReportExpiredEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + ahree.Kind = KindApplicationHealthReportExpired + objectMap := make(map[string]interface{}) + if ahree.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = ahree.ApplicationInstanceID + } + if ahree.SourceID != nil { + objectMap["SourceId"] = ahree.SourceID + } + if ahree.Property != nil { + objectMap["Property"] = ahree.Property + } + if ahree.HealthState != nil { + objectMap["HealthState"] = ahree.HealthState + } + if ahree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = ahree.TimeToLiveMs + } + if ahree.SequenceNumber != nil { + objectMap["SequenceNumber"] = ahree.SequenceNumber + } + if ahree.Description != nil { + objectMap["Description"] = ahree.Description + } + if ahree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = ahree.RemoveWhenExpired + } + if ahree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = ahree.SourceUtcTimestamp + } + if ahree.ApplicationID != nil { + objectMap["ApplicationId"] = ahree.ApplicationID + } + if ahree.EventInstanceID != nil { + objectMap["EventInstanceId"] = ahree.EventInstanceID + } + if ahree.TimeStamp != nil { + objectMap["TimeStamp"] = ahree.TimeStamp + } + if ahree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ahree.HasCorrelatedEvents + } + if ahree.Kind != "" { + objectMap["Kind"] = ahree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ahree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return &ahree, true +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ahree, true +} + +// ApplicationHealthState represents the health state of an application, which contains the application +// identifier and the aggregated health state. +type ApplicationHealthState struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// ApplicationHealthStateChunk represents the health state chunk of a application. +// The application health state chunk contains the application name, its aggregated health state and any +// children services and deployed applications that respect the filters in cluster health chunk query +// description. +type ApplicationHealthStateChunk struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceHealthStateChunks - The list of service health state chunks in the cluster that respect the filters in the cluster health chunk query description. + ServiceHealthStateChunks *ServiceHealthStateChunkList `json:"ServiceHealthStateChunks,omitempty"` + // DeployedApplicationHealthStateChunks - The list of deployed application health state chunks in the cluster that respect the filters in the cluster health chunk query description. + DeployedApplicationHealthStateChunks *DeployedApplicationHealthStateChunkList `json:"DeployedApplicationHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ApplicationHealthStateChunkList the list of application health state chunks in the cluster that respect +// the input filters in the chunk query. Returned by get cluster health state chunks query. +type ApplicationHealthStateChunkList struct { + // Items - The list of application health state chunks that respect the input filters in the chunk query. + Items *[]ApplicationHealthStateChunk `json:"Items,omitempty"` + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// ApplicationHealthStateFilter defines matching criteria to determine whether a application should be +// included in the cluster health chunk. +// One filter can match zero, one or multiple applications, depending on its properties. +type ApplicationHealthStateFilter struct { + // ApplicationNameFilter - The name of the application that matches the filter, as a fabric uri. The filter is applied only to the specified application, if it exists. + // If the application doesn't exist, no application is returned in the cluster health chunk based on this filter. + // If the application exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all applications are matched against the other filter members, like health state filter. + ApplicationNameFilter *string `json:"ApplicationNameFilter,omitempty"` + // ApplicationTypeNameFilter - The name of the application type that matches the filter. + // If specified, the filter is applied only to applications of the selected application type, if any exists. + // If no applications of the specified application type exists, no application is returned in the cluster health chunk based on this filter. + // Each application of the specified application type is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all applications are matched against the other filter members, like health state filter. + ApplicationTypeNameFilter *string `json:"ApplicationTypeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the applications. It allows selecting applications if they match the desired health states. + // The possible values are integer value of one of the following health states. Only applications that match the filter are returned. All applications are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the application name or the application type name are specified. If the filter has default value and application name is specified, the matching application is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches applications with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // ServiceFilters - Defines a list of filters that specify which services to be included in the returned cluster health chunk as children of the application. The services are returned only if the parent application matches a filter. + // If the list is empty, no services are returned. All the services are used to evaluate the parent application aggregated health state, regardless of the input filters. + // The application filter may specify multiple service filters. + // For example, it can specify a filter to return all services with health state Error and another filter to always include a service identified by its service name. + ServiceFilters *[]ServiceHealthStateFilter `json:"ServiceFilters,omitempty"` + // DeployedApplicationFilters - Defines a list of filters that specify which deployed applications to be included in the returned cluster health chunk as children of the application. The deployed applications are returned only if the parent application matches a filter. + // If the list is empty, no deployed applications are returned. All the deployed applications are used to evaluate the parent application aggregated health state, regardless of the input filters. + // The application filter may specify multiple deployed application filters. + // For example, it can specify a filter to return all deployed applications with health state Error and another filter to always include a deployed application on a specified node. + DeployedApplicationFilters *[]DeployedApplicationHealthStateFilter `json:"DeployedApplicationFilters,omitempty"` +} + +// ApplicationInfo information about a Service Fabric application. +type ApplicationInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"TypeVersion,omitempty"` + // Status - The status of the application. Possible values include: 'ApplicationStatusInvalid', 'ApplicationStatusReady', 'ApplicationStatusUpgrading', 'ApplicationStatusCreating', 'ApplicationStatusDeleting', 'ApplicationStatusFailed' + Status ApplicationStatus `json:"Status,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters *[]ApplicationParameter `json:"Parameters,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ApplicationDefinitionKind - The mechanism used to define a Service Fabric application. Possible values include: 'Invalid', 'ServiceFabricApplicationDescription', 'Compose' + ApplicationDefinitionKind ApplicationDefinitionKind `json:"ApplicationDefinitionKind,omitempty"` +} + +// ApplicationLoadInfo load Information about a Service Fabric application. +type ApplicationLoadInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // MinimumNodes - The minimum number of nodes for this application. + // It is the number of nodes where Service Fabric will reserve Capacity in the cluster which equals to ReservedLoad * MinimumNodes for this Application instance. + // For applications that do not have application capacity defined this value will be zero. + MinimumNodes *int64 `json:"MinimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where this application can be instantiated. + // It is the number of nodes this application is allowed to span. + // For applications that do not have application capacity defined this value will be zero. + MaximumNodes *int64 `json:"MaximumNodes,omitempty"` + // NodeCount - The number of nodes on which this application is instantiated. + // For applications that do not have application capacity defined this value will be zero. + NodeCount *int64 `json:"NodeCount,omitempty"` + // ApplicationLoadMetricInformation - List of application capacity metric description. + ApplicationLoadMetricInformation *[]ApplicationMetricDescription `json:"ApplicationLoadMetricInformation,omitempty"` +} + +// ApplicationMetricDescription describes capacity information for a custom resource balancing metric. This +// can be used to limit the total consumption of this metric by the services of this application. +type ApplicationMetricDescription struct { + // Name - The name of the metric. + Name *string `json:"Name,omitempty"` + // MaximumCapacity - The maximum node capacity for Service Fabric application. + // This is the maximum Load for an instance of this application on a single node. Even if the capacity of node is greater than this value, Service Fabric will limit the total load of services within the application on each node to this value. + // If set to zero, capacity for this metric is unlimited on each node. + // When creating a new application with application capacity defined, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + // When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + MaximumCapacity *int64 `json:"MaximumCapacity,omitempty"` + // ReservationCapacity - The node reservation capacity for Service Fabric application. + // This is the amount of load which is reserved on nodes which have instances of this application. + // If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application. + // If set to zero, no capacity is reserved for this metric. + // When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric. + ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"` + // TotalApplicationCapacity - The total metric capacity for Service Fabric application. + // This is the total metric capacity for this application in the cluster. Service Fabric will try to limit the sum of loads of services within the application to this value. + // When creating a new application with application capacity defined, the product of MaximumNodes and MaximumCapacity must always be smaller than or equal to this value. + TotalApplicationCapacity *int64 `json:"TotalApplicationCapacity,omitempty"` +} + +// ApplicationNameInfo information about the application name. +type ApplicationNameInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// ApplicationParameter describes an application parameter override to be applied when creating or +// upgrading an application. +type ApplicationParameter struct { + // Key - The name of the parameter. + Key *string `json:"Key,omitempty"` + // Value - The value of the parameter. + Value *string `json:"Value,omitempty"` +} + +// ApplicationProperties this type describes properties of an application resource. +type ApplicationProperties struct { + // Description - User readable description of the application. + Description *string `json:"description,omitempty"` + // DebugParams - Internal use. + DebugParams *string `json:"debugParams,omitempty"` + // Services - describes the services in the application. + Services *[]ServiceResourceDescription `json:"services,omitempty"` + // HealthState - Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"healthState,omitempty"` + // UnhealthyEvaluation - When the application's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the application is marked unhealthy. + UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"` + // Status - Status of the application resource. Possible values include: 'ApplicationResourceStatusInvalid', 'ApplicationResourceStatusReady', 'ApplicationResourceStatusUpgrading', 'ApplicationResourceStatusCreating', 'ApplicationResourceStatusDeleting', 'ApplicationResourceStatusFailed' + Status ApplicationResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the application deployment. + StatusDetails *string `json:"statusDetails,omitempty"` + // ServiceNames - Names of the services in the application. + ServiceNames *[]string `json:"serviceNames,omitempty"` + // Diagnostics - Describes the diagnostics definition and usage for an application resource. + Diagnostics *DiagnosticsDescription `json:"diagnostics,omitempty"` +} + +// ApplicationResourceDescription describes a service fabric application resource. +type ApplicationResourceDescription struct { + autorest.Response `json:"-"` + // ApplicationProperties - This type describes properties of an application resource. + *ApplicationProperties `json:"properties,omitempty"` + // Name - Application resource name. + Name *string `json:"name,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResourceDescription. +func (ard ApplicationResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ard.ApplicationProperties != nil { + objectMap["properties"] = ard.ApplicationProperties + } + if ard.Name != nil { + objectMap["name"] = ard.Name + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationResourceDescription struct. +func (ard *ApplicationResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var applicationProperties ApplicationProperties + err = json.Unmarshal(*v, &applicationProperties) + if err != nil { + return err + } + ard.ApplicationProperties = &applicationProperties + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ard.Name = &name + } + } + } + + return nil +} + +// ApplicationsHealthEvaluation represents health evaluation for applications, containing health +// evaluations for each unhealthy application that impacted current aggregated health state. +type ApplicationsHealthEvaluation struct { + // MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications from the ClusterHealthPolicy. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // TotalCount - Total number of applications from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + ahe.Kind = KindApplications + objectMap := make(map[string]interface{}) + if ahe.MaxPercentUnhealthyApplications != nil { + objectMap["MaxPercentUnhealthyApplications"] = ahe.MaxPercentUnhealthyApplications + } + if ahe.TotalCount != nil { + objectMap["TotalCount"] = ahe.TotalCount + } + if ahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations + } + if ahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState + } + if ahe.Description != nil { + objectMap["Description"] = ahe.Description + } + if ahe.Kind != "" { + objectMap["Kind"] = ahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return &ahe, true +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ahe, true +} + +// ApplicationTypeApplicationsHealthEvaluation represents health evaluation for applications of a +// particular application type. The application type applications evaluation can be returned when cluster +// health evaluation returns unhealthy aggregated health state, either Error or Warning. It contains health +// evaluations for each unhealthy application of the included application type that impacted current +// aggregated health state. +type ApplicationTypeApplicationsHealthEvaluation struct { + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications for the application type, specified as an entry in ApplicationTypeHealthPolicyMap. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // TotalCount - Total number of applications of the application type found in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation of this application type that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + atahe.Kind = KindApplicationTypeApplications + objectMap := make(map[string]interface{}) + if atahe.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = atahe.ApplicationTypeName + } + if atahe.MaxPercentUnhealthyApplications != nil { + objectMap["MaxPercentUnhealthyApplications"] = atahe.MaxPercentUnhealthyApplications + } + if atahe.TotalCount != nil { + objectMap["TotalCount"] = atahe.TotalCount + } + if atahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = atahe.UnhealthyEvaluations + } + if atahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = atahe.AggregatedHealthState + } + if atahe.Description != nil { + objectMap["Description"] = atahe.Description + } + if atahe.Kind != "" { + objectMap["Kind"] = atahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return &atahe, true +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &atahe, true +} + +// ApplicationTypeHealthPolicyMapItem defines an item in ApplicationTypeHealthPolicyMap. +type ApplicationTypeHealthPolicyMapItem struct { + // Key - The key of the application type health policy map item. This is the name of the application type. + Key *string `json:"Key,omitempty"` + // Value - The value of the application type health policy map item. + // The max percent unhealthy applications allowed for the application type. Must be between zero and 100. + Value *int32 `json:"Value,omitempty"` +} + +// ApplicationTypeImageStorePath path description for the application package in the image store specified +// during the prior copy operation. +type ApplicationTypeImageStorePath struct { + // ApplicationTypeBuildPath - The relative image store path to the application package. + ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"` +} + +// ApplicationTypeInfo information about an application type. +type ApplicationTypeInfo struct { + // Name - The application type name as defined in the application manifest. + Name *string `json:"Name,omitempty"` + // Version - The version of the application type as defined in the application manifest. + Version *string `json:"Version,omitempty"` + // DefaultParameterList - List of application type parameters that can be overridden when creating or updating the application. + DefaultParameterList *[]ApplicationParameter `json:"DefaultParameterList,omitempty"` + // Status - The status of the application type. Possible values include: 'ApplicationTypeStatusInvalid', 'ApplicationTypeStatusProvisioning', 'ApplicationTypeStatusAvailable', 'ApplicationTypeStatusUnprovisioning', 'ApplicationTypeStatusFailed' + Status ApplicationTypeStatus `json:"Status,omitempty"` + // StatusDetails - Additional detailed information about the status of the application type. + StatusDetails *string `json:"StatusDetails,omitempty"` + // ApplicationTypeDefinitionKind - The mechanism used to define a Service Fabric application type. Possible values include: 'ApplicationTypeDefinitionKindInvalid', 'ApplicationTypeDefinitionKindServiceFabricApplicationPackage', 'ApplicationTypeDefinitionKindCompose' + ApplicationTypeDefinitionKind ApplicationTypeDefinitionKind `json:"ApplicationTypeDefinitionKind,omitempty"` +} + +// ApplicationTypeManifest contains the manifest describing an application type registered in a Service +// Fabric cluster. +type ApplicationTypeManifest struct { + autorest.Response `json:"-"` + // Manifest - The XML manifest as a string. + Manifest *string `json:"Manifest,omitempty"` +} + +// ApplicationUpgradeCompleteEvent application Upgrade Complete event. +type ApplicationUpgradeCompleteEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) MarshalJSON() ([]byte, error) { + auce.Kind = KindApplicationUpgradeComplete + objectMap := make(map[string]interface{}) + if auce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = auce.ApplicationTypeName + } + if auce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = auce.ApplicationTypeVersion + } + if auce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = auce.OverallUpgradeElapsedTimeInMs + } + if auce.ApplicationID != nil { + objectMap["ApplicationId"] = auce.ApplicationID + } + if auce.EventInstanceID != nil { + objectMap["EventInstanceId"] = auce.EventInstanceID + } + if auce.TimeStamp != nil { + objectMap["TimeStamp"] = auce.TimeStamp + } + if auce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = auce.HasCorrelatedEvents + } + if auce.Kind != "" { + objectMap["Kind"] = auce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &auce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return &auce, true +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompleteEvent. +func (auce ApplicationUpgradeCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &auce, true +} + +// ApplicationUpgradeDescription describes the parameters for an application upgrade. Note that upgrade +// description replaces the existing application description. This means that if the parameters are not +// specified, the existing parameters on the applications will be overwritten with the empty parameters +// list. This would result in the application using the default value of the parameters from the +// application manifest. If you do not want to change any existing parameter values, please get the +// application parameters first using the GetApplicationInfo query and then supply those values as +// Parameters in this ApplicationUpgradeDescription. +type ApplicationUpgradeDescription struct { + // Name - The name of the target application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters *[]ApplicationParameter `json:"Parameters,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` +} + +// ApplicationUpgradeDomainCompleteEvent application Upgrade Domain Complete event. +type ApplicationUpgradeDomainCompleteEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // UpgradeState - State of upgrade. + UpgradeState *string `json:"UpgradeState,omitempty"` + // UpgradeDomains - Upgrade domains. + UpgradeDomains *string `json:"UpgradeDomains,omitempty"` + // UpgradeDomainElapsedTimeInMs - Upgrade time of domain in milli-seconds. + UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) MarshalJSON() ([]byte, error) { + audce.Kind = KindApplicationUpgradeDomainComplete + objectMap := make(map[string]interface{}) + if audce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = audce.ApplicationTypeName + } + if audce.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = audce.CurrentApplicationTypeVersion + } + if audce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = audce.ApplicationTypeVersion + } + if audce.UpgradeState != nil { + objectMap["UpgradeState"] = audce.UpgradeState + } + if audce.UpgradeDomains != nil { + objectMap["UpgradeDomains"] = audce.UpgradeDomains + } + if audce.UpgradeDomainElapsedTimeInMs != nil { + objectMap["UpgradeDomainElapsedTimeInMs"] = audce.UpgradeDomainElapsedTimeInMs + } + if audce.ApplicationID != nil { + objectMap["ApplicationId"] = audce.ApplicationID + } + if audce.EventInstanceID != nil { + objectMap["EventInstanceId"] = audce.EventInstanceID + } + if audce.TimeStamp != nil { + objectMap["TimeStamp"] = audce.TimeStamp + } + if audce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = audce.HasCorrelatedEvents + } + if audce.Kind != "" { + objectMap["Kind"] = audce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &audce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return &audce, true +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompleteEvent. +func (audce ApplicationUpgradeDomainCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &audce, true +} + +// ApplicationUpgradeProgressInfo describes the parameters for an application upgrade. +type ApplicationUpgradeProgressInfo struct { + autorest.Response `json:"-"` + // Name - The name of the target application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // UpgradeDomains - List of upgrade domains and their statuses. + UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // NextUpgradeDomain - The name of the next upgrade domain to be processed. + NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeDescription - Describes the parameters for an application upgrade. Note that upgrade description replaces the existing application description. This means that if the parameters are not specified, the existing parameters on the applications will be overwritten with the empty parameters list. This would result in the application using the default value of the parameters from the application manifest. If you do not want to change any existing parameter values, please get the application parameters first using the GetApplicationInfo query and then supply those values as Parameters in this ApplicationUpgradeDescription. + UpgradeDescription *ApplicationUpgradeDescription `json:"UpgradeDescription,omitempty"` + // UpgradeDurationInMilliseconds - The estimated total amount of time spent processing the overall upgrade. + UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"` + // UpgradeDomainDurationInMilliseconds - The estimated total amount of time spent processing the current upgrade domain. + UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"` + // UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The estimated UTC datetime when the upgrade started. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure. + UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"` + // UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade. + UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"` +} + +// ApplicationUpgradeRollbackCompleteEvent application Upgrade Rollback Complete event. +type ApplicationUpgradeRollbackCompleteEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // FailureReason - Describes reason of failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) MarshalJSON() ([]byte, error) { + aurce.Kind = KindApplicationUpgradeRollbackComplete + objectMap := make(map[string]interface{}) + if aurce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = aurce.ApplicationTypeName + } + if aurce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = aurce.ApplicationTypeVersion + } + if aurce.FailureReason != nil { + objectMap["FailureReason"] = aurce.FailureReason + } + if aurce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = aurce.OverallUpgradeElapsedTimeInMs + } + if aurce.ApplicationID != nil { + objectMap["ApplicationId"] = aurce.ApplicationID + } + if aurce.EventInstanceID != nil { + objectMap["EventInstanceId"] = aurce.EventInstanceID + } + if aurce.TimeStamp != nil { + objectMap["TimeStamp"] = aurce.TimeStamp + } + if aurce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = aurce.HasCorrelatedEvents + } + if aurce.Kind != "" { + objectMap["Kind"] = aurce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &aurce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return &aurce, true +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompleteEvent. +func (aurce ApplicationUpgradeRollbackCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &aurce, true +} + +// ApplicationUpgradeRollbackStartEvent application Upgrade Rollback Start event. +type ApplicationUpgradeRollbackStartEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // FailureReason - Describes reason of failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) MarshalJSON() ([]byte, error) { + aurse.Kind = KindApplicationUpgradeRollbackStart + objectMap := make(map[string]interface{}) + if aurse.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = aurse.ApplicationTypeName + } + if aurse.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = aurse.CurrentApplicationTypeVersion + } + if aurse.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = aurse.ApplicationTypeVersion + } + if aurse.FailureReason != nil { + objectMap["FailureReason"] = aurse.FailureReason + } + if aurse.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = aurse.OverallUpgradeElapsedTimeInMs + } + if aurse.ApplicationID != nil { + objectMap["ApplicationId"] = aurse.ApplicationID + } + if aurse.EventInstanceID != nil { + objectMap["EventInstanceId"] = aurse.EventInstanceID + } + if aurse.TimeStamp != nil { + objectMap["TimeStamp"] = aurse.TimeStamp + } + if aurse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = aurse.HasCorrelatedEvents + } + if aurse.Kind != "" { + objectMap["Kind"] = aurse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &aurse, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return &aurse, true +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartEvent. +func (aurse ApplicationUpgradeRollbackStartEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &aurse, true +} + +// ApplicationUpgradeStartEvent application Upgrade Start event. +type ApplicationUpgradeStartEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // UpgradeType - Type of upgrade. + UpgradeType *string `json:"UpgradeType,omitempty"` + // RollingUpgradeMode - Mode of upgrade. + RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"` + // FailureAction - Action if failed. + FailureAction *string `json:"FailureAction,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) MarshalJSON() ([]byte, error) { + ause.Kind = KindApplicationUpgradeStart + objectMap := make(map[string]interface{}) + if ause.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ause.ApplicationTypeName + } + if ause.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = ause.CurrentApplicationTypeVersion + } + if ause.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ause.ApplicationTypeVersion + } + if ause.UpgradeType != nil { + objectMap["UpgradeType"] = ause.UpgradeType + } + if ause.RollingUpgradeMode != nil { + objectMap["RollingUpgradeMode"] = ause.RollingUpgradeMode + } + if ause.FailureAction != nil { + objectMap["FailureAction"] = ause.FailureAction + } + if ause.ApplicationID != nil { + objectMap["ApplicationId"] = ause.ApplicationID + } + if ause.EventInstanceID != nil { + objectMap["EventInstanceId"] = ause.EventInstanceID + } + if ause.TimeStamp != nil { + objectMap["TimeStamp"] = ause.TimeStamp + } + if ause.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ause.HasCorrelatedEvents + } + if ause.Kind != "" { + objectMap["Kind"] = ause.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ause, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return &ause, true +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartEvent. +func (ause ApplicationUpgradeStartEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ause, true +} + +// ApplicationUpgradeUpdateDescription describes the parameters for updating an ongoing application +// upgrade. +type ApplicationUpgradeUpdateDescription struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` + // UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster. + UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"` +} + +// AveragePartitionLoadScalingTrigger represents a scaling trigger related to an average load of a +// metric/resource of a partition. +type AveragePartitionLoadScalingTrigger struct { + // MetricName - The name of the metric for which usage should be tracked. + MetricName *string `json:"MetricName,omitempty"` + // LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed. + LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"` + // UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed. + UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"` + // ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not. + ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"` + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) MarshalJSON() ([]byte, error) { + aplst.Kind = KindAveragePartitionLoad + objectMap := make(map[string]interface{}) + if aplst.MetricName != nil { + objectMap["MetricName"] = aplst.MetricName + } + if aplst.LowerLoadThreshold != nil { + objectMap["LowerLoadThreshold"] = aplst.LowerLoadThreshold + } + if aplst.UpperLoadThreshold != nil { + objectMap["UpperLoadThreshold"] = aplst.UpperLoadThreshold + } + if aplst.ScaleIntervalInSeconds != nil { + objectMap["ScaleIntervalInSeconds"] = aplst.ScaleIntervalInSeconds + } + if aplst.Kind != "" { + objectMap["Kind"] = aplst.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return &aplst, true +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return nil, false +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return nil, false +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &aplst, true +} + +// AverageServiceLoadScalingTrigger represents a scaling policy related to an average load of a +// metric/resource of a service. +type AverageServiceLoadScalingTrigger struct { + // MetricName - The name of the metric for which usage should be tracked. + MetricName *string `json:"MetricName,omitempty"` + // LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed. + LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"` + // UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed. + UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"` + // ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not. + ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"` + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) MarshalJSON() ([]byte, error) { + aslst.Kind = KindAverageServiceLoad + objectMap := make(map[string]interface{}) + if aslst.MetricName != nil { + objectMap["MetricName"] = aslst.MetricName + } + if aslst.LowerLoadThreshold != nil { + objectMap["LowerLoadThreshold"] = aslst.LowerLoadThreshold + } + if aslst.UpperLoadThreshold != nil { + objectMap["UpperLoadThreshold"] = aslst.UpperLoadThreshold + } + if aslst.ScaleIntervalInSeconds != nil { + objectMap["ScaleIntervalInSeconds"] = aslst.ScaleIntervalInSeconds + } + if aslst.Kind != "" { + objectMap["Kind"] = aslst.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return nil, false +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return &aslst, true +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return nil, false +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &aslst, true +} + +// AzureBlobBackupStorageDescription describes the parameters for Azure blob store used for storing and +// enumerating backups. +type AzureBlobBackupStorageDescription struct { + // ConnectionString - The connection string to connect to the Azure blob store. + ConnectionString *string `json:"ConnectionString,omitempty"` + // ContainerName - The name of the container in the blob store to store and enumerate backups from. + ContainerName *string `json:"ContainerName,omitempty"` + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) MarshalJSON() ([]byte, error) { + abbsd.StorageKind = StorageKindAzureBlobStore + objectMap := make(map[string]interface{}) + if abbsd.ConnectionString != nil { + objectMap["ConnectionString"] = abbsd.ConnectionString + } + if abbsd.ContainerName != nil { + objectMap["ContainerName"] = abbsd.ContainerName + } + if abbsd.FriendlyName != nil { + objectMap["FriendlyName"] = abbsd.FriendlyName + } + if abbsd.StorageKind != "" { + objectMap["StorageKind"] = abbsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return &abbsd, true +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return nil, false +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return nil, false +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &abbsd, true +} + +// BasicBackupConfigurationInfo describes the backup configuration information. +type BasicBackupConfigurationInfo interface { + AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) + AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) + AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) + AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) +} + +// BackupConfigurationInfo describes the backup configuration information. +type BackupConfigurationInfo struct { + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +func unmarshalBasicBackupConfigurationInfo(body []byte) (BasicBackupConfigurationInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicBackupConfigurationInfoKindApplication): + var abci ApplicationBackupConfigurationInfo + err := json.Unmarshal(body, &abci) + return abci, err + case string(KindBasicBackupConfigurationInfoKindService): + var sbci ServiceBackupConfigurationInfo + err := json.Unmarshal(body, &sbci) + return sbci, err + case string(KindBasicBackupConfigurationInfoKindPartition): + var pbci PartitionBackupConfigurationInfo + err := json.Unmarshal(body, &pbci) + return pbci, err + default: + var bci BackupConfigurationInfo + err := json.Unmarshal(body, &bci) + return bci, err + } +} +func unmarshalBasicBackupConfigurationInfoArray(body []byte) ([]BasicBackupConfigurationInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bciArray := make([]BasicBackupConfigurationInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bci, err := unmarshalBasicBackupConfigurationInfo(*rawMessage) + if err != nil { + return nil, err + } + bciArray[index] = bci + } + return bciArray, nil +} + +// MarshalJSON is the custom marshaler for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) MarshalJSON() ([]byte, error) { + bci.Kind = KindBasicBackupConfigurationInfoKindBackupConfigurationInfo + objectMap := make(map[string]interface{}) + if bci.PolicyName != nil { + objectMap["PolicyName"] = bci.PolicyName + } + if bci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = bci.PolicyInheritedFrom + } + if bci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = bci.SuspensionInfo + } + if bci.Kind != "" { + objectMap["Kind"] = bci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return &bci, true +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &bci, true +} + +// BasicBackupEntity describes the Service Fabric entity that is configured for backup. +type BasicBackupEntity interface { + AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) + AsServiceBackupEntity() (*ServiceBackupEntity, bool) + AsPartitionBackupEntity() (*PartitionBackupEntity, bool) + AsBackupEntity() (*BackupEntity, bool) +} + +// BackupEntity describes the Service Fabric entity that is configured for backup. +type BackupEntity struct { + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +func unmarshalBasicBackupEntity(body []byte) (BasicBackupEntity, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["EntityKind"] { + case string(EntityKindApplication1): + var abe ApplicationBackupEntity + err := json.Unmarshal(body, &abe) + return abe, err + case string(EntityKindService1): + var sbe ServiceBackupEntity + err := json.Unmarshal(body, &sbe) + return sbe, err + case string(EntityKindPartition1): + var pbe PartitionBackupEntity + err := json.Unmarshal(body, &pbe) + return pbe, err + default: + var be BackupEntity + err := json.Unmarshal(body, &be) + return be, err + } +} +func unmarshalBasicBackupEntityArray(body []byte) ([]BasicBackupEntity, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + beArray := make([]BasicBackupEntity, len(rawMessages)) + + for index, rawMessage := range rawMessages { + be, err := unmarshalBasicBackupEntity(*rawMessage) + if err != nil { + return nil, err + } + beArray[index] = be + } + return beArray, nil +} + +// MarshalJSON is the custom marshaler for BackupEntity. +func (be BackupEntity) MarshalJSON() ([]byte, error) { + be.EntityKind = EntityKindBackupEntity + objectMap := make(map[string]interface{}) + if be.EntityKind != "" { + objectMap["EntityKind"] = be.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return &be, true +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &be, true +} + +// BackupEpoch an Epoch is a configuration number for the partition as a whole. When the configuration of +// the replica set changes, for example when the Primary replica changes, the operations that are +// replicated from the new Primary replica are said to be a new Epoch from the ones which were sent by the +// old Primary replica. +type BackupEpoch struct { + // ConfigurationNumber - The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes. + ConfigurationNumber *string `json:"ConfigurationNumber,omitempty"` + // DataLossNumber - The current data loss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. + DataLossNumber *string `json:"DataLossNumber,omitempty"` +} + +// BackupInfo represents a backup point which can be used to trigger a restore. +type BackupInfo struct { + // BackupID - Unique backup ID . + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupChainID - Unique backup chain ID. All backups part of the same chain has the same backup chain id. A backup chain is comprised of 1 full backup and multiple incremental backups. + BackupChainID *uuid.UUID `json:"BackupChainId,omitempty"` + // ApplicationName - Name of the Service Fabric application this partition backup belongs to. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - Name of the Service Fabric service this partition backup belongs to. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionInformation - Information about the partition to which this backup belongs to + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // BackupLocation - Location of the backup, relative to the backup store. + BackupLocation *string `json:"BackupLocation,omitempty"` + // BackupType - Describes the type of backup, whether its full or incremental. Possible values include: 'BackupTypeInvalid', 'BackupTypeFull', 'BackupTypeIncremental' + BackupType BackupType `json:"BackupType,omitempty"` + // EpochOfLastBackupRecord - Epoch of the last record in this backup. + EpochOfLastBackupRecord *BackupEpoch `json:"EpochOfLastBackupRecord,omitempty"` + // LsnOfLastBackupRecord - LSN of the last record in this backup. + LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"` + // CreationTimeUtc - The date time when this backup was taken. + CreationTimeUtc *date.Time `json:"CreationTimeUtc,omitempty"` + // FailureError - Denotes the failure encountered in getting backup point information. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupInfo struct. +func (bi *BackupInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupId": + if v != nil { + var backupID uuid.UUID + err = json.Unmarshal(*v, &backupID) + if err != nil { + return err + } + bi.BackupID = &backupID + } + case "BackupChainId": + if v != nil { + var backupChainID uuid.UUID + err = json.Unmarshal(*v, &backupChainID) + if err != nil { + return err + } + bi.BackupChainID = &backupChainID + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + bi.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + bi.ServiceName = &serviceName + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + bi.PartitionInformation = partitionInformation + } + case "BackupLocation": + if v != nil { + var backupLocation string + err = json.Unmarshal(*v, &backupLocation) + if err != nil { + return err + } + bi.BackupLocation = &backupLocation + } + case "BackupType": + if v != nil { + var backupType BackupType + err = json.Unmarshal(*v, &backupType) + if err != nil { + return err + } + bi.BackupType = backupType + } + case "EpochOfLastBackupRecord": + if v != nil { + var epochOfLastBackupRecord BackupEpoch + err = json.Unmarshal(*v, &epochOfLastBackupRecord) + if err != nil { + return err + } + bi.EpochOfLastBackupRecord = &epochOfLastBackupRecord + } + case "LsnOfLastBackupRecord": + if v != nil { + var lsnOfLastBackupRecord string + err = json.Unmarshal(*v, &lsnOfLastBackupRecord) + if err != nil { + return err + } + bi.LsnOfLastBackupRecord = &lsnOfLastBackupRecord + } + case "CreationTimeUtc": + if v != nil { + var creationTimeUtc date.Time + err = json.Unmarshal(*v, &creationTimeUtc) + if err != nil { + return err + } + bi.CreationTimeUtc = &creationTimeUtc + } + case "FailureError": + if v != nil { + var failureError FabricErrorError + err = json.Unmarshal(*v, &failureError) + if err != nil { + return err + } + bi.FailureError = &failureError + } + } + } + + return nil +} + +// BackupPartitionDescription describes the parameters for triggering partition's backup. +type BackupPartitionDescription struct { + // BackupStorage - Specifies the details of the backup storage where to save the backup. + BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupPartitionDescription struct. +func (bpd *BackupPartitionDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupStorage": + if v != nil { + backupStorage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + bpd.BackupStorage = backupStorage + } + } + } + + return nil +} + +// BackupPolicyDescription describes a backup policy for configuring periodic backup. +type BackupPolicyDescription struct { + autorest.Response `json:"-"` + // Name - The unique name identifying this backup policy. + Name *string `json:"Name,omitempty"` + // AutoRestoreOnDataLoss - Specifies whether to trigger restore automatically using the latest available backup in case the partition experiences a data loss event. + AutoRestoreOnDataLoss *bool `json:"AutoRestoreOnDataLoss,omitempty"` + // MaxIncrementalBackups - Defines the maximum number of incremental backups to be taken between two full backups. This is just the upper limit. A full backup may be taken before specified number of incremental backups are completed in one of the following conditions + // - The replica has never taken a full backup since it has become primary, + // - Some of the log records since the last backup has been truncated, or + // - Replica passed the MaxAccumulatedBackupLogSizeInMB limit. + MaxIncrementalBackups *int32 `json:"MaxIncrementalBackups,omitempty"` + // Schedule - Describes the backup schedule parameters. + Schedule BasicBackupScheduleDescription `json:"Schedule,omitempty"` + // Storage - Describes the details of backup storage where to store the periodic backups. + Storage BasicBackupStorageDescription `json:"Storage,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupPolicyDescription struct. +func (bpd *BackupPolicyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + bpd.Name = &name + } + case "AutoRestoreOnDataLoss": + if v != nil { + var autoRestoreOnDataLoss bool + err = json.Unmarshal(*v, &autoRestoreOnDataLoss) + if err != nil { + return err + } + bpd.AutoRestoreOnDataLoss = &autoRestoreOnDataLoss + } + case "MaxIncrementalBackups": + if v != nil { + var maxIncrementalBackups int32 + err = json.Unmarshal(*v, &maxIncrementalBackups) + if err != nil { + return err + } + bpd.MaxIncrementalBackups = &maxIncrementalBackups + } + case "Schedule": + if v != nil { + schedule, err := unmarshalBasicBackupScheduleDescription(*v) + if err != nil { + return err + } + bpd.Schedule = schedule + } + case "Storage": + if v != nil { + storage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + bpd.Storage = storage + } + } + } + + return nil +} + +// BackupProgressInfo describes the progress of a partition's backup. +type BackupProgressInfo struct { + autorest.Response `json:"-"` + // BackupState - Represents the current state of the partition backup operation. Possible values include: 'BackupStateInvalid', 'BackupStateAccepted', 'BackupStateBackupInProgress', 'BackupStateSuccess', 'BackupStateFailure', 'BackupStateTimeout' + BackupState BackupState `json:"BackupState,omitempty"` + // TimeStampUtc - TimeStamp in UTC when operation succeeded or failed. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // BackupID - Unique ID of the newly created backup. + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupLocation - Location, relative to the backup store, of the newly created backup. + BackupLocation *string `json:"BackupLocation,omitempty"` + // EpochOfLastBackupRecord - Specifies the epoch of the last record included in backup. + EpochOfLastBackupRecord *BackupEpoch `json:"EpochOfLastBackupRecord,omitempty"` + // LsnOfLastBackupRecord - The LSN of last record included in backup. + LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"` + // FailureError - Denotes the failure encountered in performing backup operation. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// BasicBackupScheduleDescription describes the backup schedule parameters. +type BasicBackupScheduleDescription interface { + AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) + AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) + AsBackupScheduleDescription() (*BackupScheduleDescription, bool) +} + +// BackupScheduleDescription describes the backup schedule parameters. +type BackupScheduleDescription struct { + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +func unmarshalBasicBackupScheduleDescription(body []byte) (BasicBackupScheduleDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ScheduleKind"] { + case string(ScheduleKindFrequencyBased): + var fbbsd FrequencyBasedBackupScheduleDescription + err := json.Unmarshal(body, &fbbsd) + return fbbsd, err + case string(ScheduleKindTimeBased): + var tbbsd TimeBasedBackupScheduleDescription + err := json.Unmarshal(body, &tbbsd) + return tbbsd, err + default: + var bsd BackupScheduleDescription + err := json.Unmarshal(body, &bsd) + return bsd, err + } +} +func unmarshalBasicBackupScheduleDescriptionArray(body []byte) ([]BasicBackupScheduleDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bsdArray := make([]BasicBackupScheduleDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bsd, err := unmarshalBasicBackupScheduleDescription(*rawMessage) + if err != nil { + return nil, err + } + bsdArray[index] = bsd + } + return bsdArray, nil +} + +// MarshalJSON is the custom marshaler for BackupScheduleDescription. +func (bsd BackupScheduleDescription) MarshalJSON() ([]byte, error) { + bsd.ScheduleKind = ScheduleKindBackupScheduleDescription + objectMap := make(map[string]interface{}) + if bsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = bsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return &bsd, true +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &bsd, true +} + +// BasicBackupStorageDescription describes the parameters for the backup storage. +type BasicBackupStorageDescription interface { + AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) + AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) + AsBackupStorageDescription() (*BackupStorageDescription, bool) +} + +// BackupStorageDescription describes the parameters for the backup storage. +type BackupStorageDescription struct { + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +func unmarshalBasicBackupStorageDescription(body []byte) (BasicBackupStorageDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["StorageKind"] { + case string(StorageKindAzureBlobStore): + var abbsd AzureBlobBackupStorageDescription + err := json.Unmarshal(body, &abbsd) + return abbsd, err + case string(StorageKindFileShare): + var fsbsd FileShareBackupStorageDescription + err := json.Unmarshal(body, &fsbsd) + return fsbsd, err + default: + var bsd BackupStorageDescription + err := json.Unmarshal(body, &bsd) + return bsd, err + } +} +func unmarshalBasicBackupStorageDescriptionArray(body []byte) ([]BasicBackupStorageDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bsdArray := make([]BasicBackupStorageDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bsd, err := unmarshalBasicBackupStorageDescription(*rawMessage) + if err != nil { + return nil, err + } + bsdArray[index] = bsd + } + return bsdArray, nil +} + +// MarshalJSON is the custom marshaler for BackupStorageDescription. +func (bsd BackupStorageDescription) MarshalJSON() ([]byte, error) { + bsd.StorageKind = StorageKindBackupStorageDescription + objectMap := make(map[string]interface{}) + if bsd.FriendlyName != nil { + objectMap["FriendlyName"] = bsd.FriendlyName + } + if bsd.StorageKind != "" { + objectMap["StorageKind"] = bsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return nil, false +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return nil, false +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return &bsd, true +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &bsd, true +} + +// BackupSuspensionInfo describes the backup suspension details. +type BackupSuspensionInfo struct { + // IsSuspended - Indicates whether periodic backup is suspended at this level or not. + IsSuspended *bool `json:"IsSuspended,omitempty"` + // SuspensionInheritedFrom - Specifies the scope at which the backup suspension was applied. Possible values include: 'BackupSuspensionScopeInvalid', 'BackupSuspensionScopePartition', 'BackupSuspensionScopeService', 'BackupSuspensionScopeApplication' + SuspensionInheritedFrom BackupSuspensionScope `json:"SuspensionInheritedFrom,omitempty"` +} + +// BinaryPropertyValue describes a Service Fabric property value of type Binary. +type BinaryPropertyValue struct { + // Data - Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255. + Data *[]int32 `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for BinaryPropertyValue. +func (bpv BinaryPropertyValue) MarshalJSON() ([]byte, error) { + bpv.Kind = KindBinary + objectMap := make(map[string]interface{}) + if bpv.Data != nil { + objectMap["Data"] = bpv.Data + } + if bpv.Kind != "" { + objectMap["Kind"] = bpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return &bpv, true +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &bpv, true +} + +// Chaos contains a description of Chaos. +type Chaos struct { + autorest.Response `json:"-"` + // ChaosParameters - If Chaos is running, these are the parameters Chaos is running with. + ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"` + // Status - Current status of the Chaos run. Possible values include: 'ChaosStatusInvalid', 'ChaosStatusRunning', 'ChaosStatusStopped' + Status ChaosStatus `json:"Status,omitempty"` + // ScheduleStatus - Current status of the schedule. Possible values include: 'ChaosScheduleStatusInvalid', 'ChaosScheduleStatusStopped', 'ChaosScheduleStatusActive', 'ChaosScheduleStatusExpired', 'ChaosScheduleStatusPending' + ScheduleStatus ChaosScheduleStatus `json:"ScheduleStatus,omitempty"` +} + +// ChaosContext describes a map, which is a collection of (string, string) type key-value pairs. The map +// can be used to record information about +// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most +// 4095 characters long. +// This map is set by the starter of the Chaos run to optionally store the context about the specific run. +type ChaosContext struct { + // Map - Describes a map that contains a collection of ChaosContextMapItem's. + Map map[string]*string `json:"Map"` +} + +// MarshalJSON is the custom marshaler for ChaosContext. +func (cc ChaosContext) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if cc.Map != nil { + objectMap["Map"] = cc.Map + } + return json.Marshal(objectMap) +} + +// BasicChaosEvent represents an event generated during a Chaos run. +type BasicChaosEvent interface { + AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) + AsStartedChaosEvent() (*StartedChaosEvent, bool) + AsStoppedChaosEvent() (*StoppedChaosEvent, bool) + AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) + AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) + AsWaitingChaosEvent() (*WaitingChaosEvent, bool) + AsChaosEvent() (*ChaosEvent, bool) +} + +// ChaosEvent represents an event generated during a Chaos run. +type ChaosEvent struct { + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicChaosEvent(body []byte) (BasicChaosEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindExecutingFaults): + var efce ExecutingFaultsChaosEvent + err := json.Unmarshal(body, &efce) + return efce, err + case string(KindStarted): + var sce StartedChaosEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindStopped): + var sce StoppedChaosEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindTestError): + var tece TestErrorChaosEvent + err := json.Unmarshal(body, &tece) + return tece, err + case string(KindValidationFailed): + var vfce ValidationFailedChaosEvent + err := json.Unmarshal(body, &vfce) + return vfce, err + case string(KindWaiting): + var wce WaitingChaosEvent + err := json.Unmarshal(body, &wce) + return wce, err + default: + var ce ChaosEvent + err := json.Unmarshal(body, &ce) + return ce, err + } +} +func unmarshalBasicChaosEventArray(body []byte) ([]BasicChaosEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ceArray := make([]BasicChaosEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ce, err := unmarshalBasicChaosEvent(*rawMessage) + if err != nil { + return nil, err + } + ceArray[index] = ce + } + return ceArray, nil +} + +// MarshalJSON is the custom marshaler for ChaosEvent. +func (ce ChaosEvent) MarshalJSON() ([]byte, error) { + ce.Kind = KindChaosEvent + objectMap := make(map[string]interface{}) + if ce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = ce.TimeStampUtc + } + if ce.Kind != "" { + objectMap["Kind"] = ce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return &ce, true +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &ce, true +} + +// ChaosEventsSegment contains the list of Chaos events and the continuation token to get the next segment. +type ChaosEventsSegment struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // History - List of Chaos events that meet the user-supplied criteria. + History *[]ChaosEventWrapper `json:"History,omitempty"` +} + +// ChaosEventWrapper wrapper object for Chaos event. +type ChaosEventWrapper struct { + // ChaosEvent - Represents an event generated during a Chaos run. + ChaosEvent BasicChaosEvent `json:"ChaosEvent,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ChaosEventWrapper struct. +func (cew *ChaosEventWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ChaosEvent": + if v != nil { + chaosEvent, err := unmarshalBasicChaosEvent(*v) + if err != nil { + return err + } + cew.ChaosEvent = chaosEvent + } + } + } + + return nil +} + +// ChaosMovePrimaryFaultScheduledEvent chaos Move Primary Fault Scheduled event. +type ChaosMovePrimaryFaultScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceName - Service name. + ServiceName *string `json:"ServiceName,omitempty"` + // NodeTo - The name of a Service Fabric node. + NodeTo *string `json:"NodeTo,omitempty"` + // ForcedMove - Indicates a forced move. + ForcedMove *bool `json:"ForcedMove,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) MarshalJSON() ([]byte, error) { + cmpfse.Kind = KindChaosMovePrimaryFaultScheduled + objectMap := make(map[string]interface{}) + if cmpfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = cmpfse.FaultGroupID + } + if cmpfse.FaultID != nil { + objectMap["FaultId"] = cmpfse.FaultID + } + if cmpfse.ServiceName != nil { + objectMap["ServiceName"] = cmpfse.ServiceName + } + if cmpfse.NodeTo != nil { + objectMap["NodeTo"] = cmpfse.NodeTo + } + if cmpfse.ForcedMove != nil { + objectMap["ForcedMove"] = cmpfse.ForcedMove + } + if cmpfse.PartitionID != nil { + objectMap["PartitionId"] = cmpfse.PartitionID + } + if cmpfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cmpfse.EventInstanceID + } + if cmpfse.TimeStamp != nil { + objectMap["TimeStamp"] = cmpfse.TimeStamp + } + if cmpfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cmpfse.HasCorrelatedEvents + } + if cmpfse.Kind != "" { + objectMap["Kind"] = cmpfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &cmpfse, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return &cmpfse, true +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosMovePrimaryFaultScheduledEvent. +func (cmpfse ChaosMovePrimaryFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cmpfse, true +} + +// ChaosMoveSecondaryFaultScheduledEvent chaos Move Secondary Fault Scheduled event. +type ChaosMoveSecondaryFaultScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceName - Service name. + ServiceName *string `json:"ServiceName,omitempty"` + // SourceNode - The name of a Service Fabric node. + SourceNode *string `json:"SourceNode,omitempty"` + // DestinationNode - The name of a Service Fabric node. + DestinationNode *string `json:"DestinationNode,omitempty"` + // ForcedMove - Indicates a forced move. + ForcedMove *bool `json:"ForcedMove,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) MarshalJSON() ([]byte, error) { + cmsfse.Kind = KindChaosMoveSecondaryFaultScheduled + objectMap := make(map[string]interface{}) + if cmsfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = cmsfse.FaultGroupID + } + if cmsfse.FaultID != nil { + objectMap["FaultId"] = cmsfse.FaultID + } + if cmsfse.ServiceName != nil { + objectMap["ServiceName"] = cmsfse.ServiceName + } + if cmsfse.SourceNode != nil { + objectMap["SourceNode"] = cmsfse.SourceNode + } + if cmsfse.DestinationNode != nil { + objectMap["DestinationNode"] = cmsfse.DestinationNode + } + if cmsfse.ForcedMove != nil { + objectMap["ForcedMove"] = cmsfse.ForcedMove + } + if cmsfse.PartitionID != nil { + objectMap["PartitionId"] = cmsfse.PartitionID + } + if cmsfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cmsfse.EventInstanceID + } + if cmsfse.TimeStamp != nil { + objectMap["TimeStamp"] = cmsfse.TimeStamp + } + if cmsfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cmsfse.HasCorrelatedEvents + } + if cmsfse.Kind != "" { + objectMap["Kind"] = cmsfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &cmsfse, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return &cmsfse, true +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosMoveSecondaryFaultScheduledEvent. +func (cmsfse ChaosMoveSecondaryFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cmsfse, true +} + +// ChaosParameters defines all the parameters to configure a Chaos run. +type ChaosParameters struct { + // TimeToRunInSeconds - Total time (in seconds) for which Chaos will run before automatically stopping. The maximum allowed value is 4,294,967,295 (System.UInt32.MaxValue). + TimeToRunInSeconds *string `json:"TimeToRunInSeconds,omitempty"` + // MaxClusterStabilizationTimeoutInSeconds - The maximum amount of time to wait for all cluster entities to become stable and healthy. Chaos executes in iterations and at the start of each iteration it validates the health of cluster entities. + // During validation if a cluster entity is not stable and healthy within MaxClusterStabilizationTimeoutInSeconds, Chaos generates a validation failed event. + MaxClusterStabilizationTimeoutInSeconds *int64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"` + // MaxConcurrentFaults - MaxConcurrentFaults is the maximum number of concurrent faults induced per iteration. + // Chaos executes in iterations and two consecutive iterations are separated by a validation phase. + // The higher the concurrency, the more aggressive the injection of faults, leading to inducing more complex series of states to uncover bugs. + // The recommendation is to start with a value of 2 or 3 and to exercise caution while moving up. + MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"` + // EnableMoveReplicaFaults - Enables or disables the move primary and move secondary faults. + EnableMoveReplicaFaults *bool `json:"EnableMoveReplicaFaults,omitempty"` + // WaitTimeBetweenFaultsInSeconds - Wait time (in seconds) between consecutive faults within a single iteration. + // The larger the value, the lower the overlapping between faults and the simpler the sequence of state transitions that the cluster goes through. + // The recommendation is to start with a value between 1 and 5 and exercise caution while moving up. + WaitTimeBetweenFaultsInSeconds *int64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"` + // WaitTimeBetweenIterationsInSeconds - Time-separation (in seconds) between two consecutive iterations of Chaos. + // The larger the value, the lower the fault injection rate. + WaitTimeBetweenIterationsInSeconds *int64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"` + // ClusterHealthPolicy - Passed-in cluster health policy is used to validate health of the cluster in between Chaos iterations. If the cluster health is in error or if an unexpected exception happens during fault execution--to provide the cluster with some time to recuperate--Chaos will wait for 30 minutes before the next health-check. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // Context - Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about + // the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long. + // This map is set by the starter of the Chaos run to optionally store the context about the specific run. + Context *ChaosContext `json:"Context,omitempty"` + // ChaosTargetFilter - List of cluster entities to target for Chaos faults. + // This filter can be used to target Chaos faults only to certain node types or only to certain application instances. If ChaosTargetFilter is not used, Chaos faults all cluster entities. + // If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification. + ChaosTargetFilter *ChaosTargetFilter `json:"ChaosTargetFilter,omitempty"` +} + +// ChaosParametersDictionaryItem defines an item in ChaosParametersDictionary of the Chaos Schedule. +type ChaosParametersDictionaryItem struct { + // Key - The key identifying the Chaos Parameter in the dictionary. This key is referenced by Chaos Schedule Jobs. + Key *string `json:"Key,omitempty"` + // Value - Defines all the parameters to configure a Chaos run. + Value *ChaosParameters `json:"Value,omitempty"` +} + +// ChaosRemoveReplicaFaultCompletedEvent chaos Remove Replica Fault Completed event. +type ChaosRemoveReplicaFaultCompletedEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceURI - Service name. + ServiceURI *string `json:"ServiceUri,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) MarshalJSON() ([]byte, error) { + crrfce.Kind = KindChaosRemoveReplicaFaultCompleted + objectMap := make(map[string]interface{}) + if crrfce.FaultGroupID != nil { + objectMap["FaultGroupId"] = crrfce.FaultGroupID + } + if crrfce.FaultID != nil { + objectMap["FaultId"] = crrfce.FaultID + } + if crrfce.ServiceURI != nil { + objectMap["ServiceUri"] = crrfce.ServiceURI + } + if crrfce.PartitionID != nil { + objectMap["PartitionId"] = crrfce.PartitionID + } + if crrfce.ReplicaID != nil { + objectMap["ReplicaId"] = crrfce.ReplicaID + } + if crrfce.EventInstanceID != nil { + objectMap["EventInstanceId"] = crrfce.EventInstanceID + } + if crrfce.TimeStamp != nil { + objectMap["TimeStamp"] = crrfce.TimeStamp + } + if crrfce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crrfce.HasCorrelatedEvents + } + if crrfce.Kind != "" { + objectMap["Kind"] = crrfce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &crrfce, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return &crrfce, true +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultCompletedEvent. +func (crrfce ChaosRemoveReplicaFaultCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crrfce, true +} + +// ChaosRemoveReplicaFaultScheduledEvent chaos Remove Replica Fault Scheduled event. +type ChaosRemoveReplicaFaultScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceURI - Service name. + ServiceURI *string `json:"ServiceUri,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) MarshalJSON() ([]byte, error) { + crrfse.Kind = KindChaosRemoveReplicaFaultScheduled + objectMap := make(map[string]interface{}) + if crrfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crrfse.FaultGroupID + } + if crrfse.FaultID != nil { + objectMap["FaultId"] = crrfse.FaultID + } + if crrfse.ServiceURI != nil { + objectMap["ServiceUri"] = crrfse.ServiceURI + } + if crrfse.PartitionID != nil { + objectMap["PartitionId"] = crrfse.PartitionID + } + if crrfse.ReplicaID != nil { + objectMap["ReplicaId"] = crrfse.ReplicaID + } + if crrfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crrfse.EventInstanceID + } + if crrfse.TimeStamp != nil { + objectMap["TimeStamp"] = crrfse.TimeStamp + } + if crrfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crrfse.HasCorrelatedEvents + } + if crrfse.Kind != "" { + objectMap["Kind"] = crrfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &crrfse, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return &crrfse, true +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRemoveReplicaFaultScheduledEvent. +func (crrfse ChaosRemoveReplicaFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crrfse, true +} + +// ChaosRestartCodePackageFaultCompletedEvent chaos Restart Code Package Fault Completed event. +type ChaosRestartCodePackageFaultCompletedEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // ServiceManifestName - Service manifest name. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - Code package name. + CodePackageName *string `json:"CodePackageName,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) MarshalJSON() ([]byte, error) { + crcpfce.Kind = KindChaosRestartCodePackageFaultCompleted + objectMap := make(map[string]interface{}) + if crcpfce.FaultGroupID != nil { + objectMap["FaultGroupId"] = crcpfce.FaultGroupID + } + if crcpfce.FaultID != nil { + objectMap["FaultId"] = crcpfce.FaultID + } + if crcpfce.NodeName != nil { + objectMap["NodeName"] = crcpfce.NodeName + } + if crcpfce.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = crcpfce.ServiceManifestName + } + if crcpfce.CodePackageName != nil { + objectMap["CodePackageName"] = crcpfce.CodePackageName + } + if crcpfce.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = crcpfce.ServicePackageActivationID + } + if crcpfce.ApplicationID != nil { + objectMap["ApplicationId"] = crcpfce.ApplicationID + } + if crcpfce.EventInstanceID != nil { + objectMap["EventInstanceId"] = crcpfce.EventInstanceID + } + if crcpfce.TimeStamp != nil { + objectMap["TimeStamp"] = crcpfce.TimeStamp + } + if crcpfce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crcpfce.HasCorrelatedEvents + } + if crcpfce.Kind != "" { + objectMap["Kind"] = crcpfce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &crcpfce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return &crcpfce, true +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultCompletedEvent. +func (crcpfce ChaosRestartCodePackageFaultCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crcpfce, true +} + +// ChaosRestartCodePackageFaultScheduledEvent chaos Restart Code Package Fault Scheduled event. +type ChaosRestartCodePackageFaultScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // ServiceManifestName - Service manifest name. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - Code package name. + CodePackageName *string `json:"CodePackageName,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) MarshalJSON() ([]byte, error) { + crcpfse.Kind = KindChaosRestartCodePackageFaultScheduled + objectMap := make(map[string]interface{}) + if crcpfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crcpfse.FaultGroupID + } + if crcpfse.FaultID != nil { + objectMap["FaultId"] = crcpfse.FaultID + } + if crcpfse.NodeName != nil { + objectMap["NodeName"] = crcpfse.NodeName + } + if crcpfse.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = crcpfse.ServiceManifestName + } + if crcpfse.CodePackageName != nil { + objectMap["CodePackageName"] = crcpfse.CodePackageName + } + if crcpfse.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = crcpfse.ServicePackageActivationID + } + if crcpfse.ApplicationID != nil { + objectMap["ApplicationId"] = crcpfse.ApplicationID + } + if crcpfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crcpfse.EventInstanceID + } + if crcpfse.TimeStamp != nil { + objectMap["TimeStamp"] = crcpfse.TimeStamp + } + if crcpfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crcpfse.HasCorrelatedEvents + } + if crcpfse.Kind != "" { + objectMap["Kind"] = crcpfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &crcpfse, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return &crcpfse, true +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRestartCodePackageFaultScheduledEvent. +func (crcpfse ChaosRestartCodePackageFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crcpfse, true +} + +// ChaosRestartNodeFaultCompletedEvent chaos Restart Node Fault Completed event. +type ChaosRestartNodeFaultCompletedEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) MarshalJSON() ([]byte, error) { + crnfce.Kind = KindChaosRestartNodeFaultCompleted + objectMap := make(map[string]interface{}) + if crnfce.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = crnfce.NodeInstanceID + } + if crnfce.FaultGroupID != nil { + objectMap["FaultGroupId"] = crnfce.FaultGroupID + } + if crnfce.FaultID != nil { + objectMap["FaultId"] = crnfce.FaultID + } + if crnfce.NodeName != nil { + objectMap["NodeName"] = crnfce.NodeName + } + if crnfce.EventInstanceID != nil { + objectMap["EventInstanceId"] = crnfce.EventInstanceID + } + if crnfce.TimeStamp != nil { + objectMap["TimeStamp"] = crnfce.TimeStamp + } + if crnfce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crnfce.HasCorrelatedEvents + } + if crnfce.Kind != "" { + objectMap["Kind"] = crnfce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &crnfce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return &crnfce, true +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultCompletedEvent. +func (crnfce ChaosRestartNodeFaultCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crnfce, true +} + +// ChaosRestartNodeFaultScheduledEvent chaos Restart Node Fault Scheduled event. +type ChaosRestartNodeFaultScheduledEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) MarshalJSON() ([]byte, error) { + crnfse.Kind = KindChaosRestartNodeFaultScheduled + objectMap := make(map[string]interface{}) + if crnfse.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = crnfse.NodeInstanceID + } + if crnfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crnfse.FaultGroupID + } + if crnfse.FaultID != nil { + objectMap["FaultId"] = crnfse.FaultID + } + if crnfse.NodeName != nil { + objectMap["NodeName"] = crnfse.NodeName + } + if crnfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crnfse.EventInstanceID + } + if crnfse.TimeStamp != nil { + objectMap["TimeStamp"] = crnfse.TimeStamp + } + if crnfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crnfse.HasCorrelatedEvents + } + if crnfse.Kind != "" { + objectMap["Kind"] = crnfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &crnfse, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return &crnfse, true +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRestartNodeFaultScheduledEvent. +func (crnfse ChaosRestartNodeFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crnfse, true +} + +// ChaosRestartReplicaFaultScheduledEvent chaos Restart Replica Fault Scheduled event. +type ChaosRestartReplicaFaultScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceURI - Service name. + ServiceURI *string `json:"ServiceUri,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) MarshalJSON() ([]byte, error) { + crrfse.Kind = KindChaosRestartReplicaFaultScheduled + objectMap := make(map[string]interface{}) + if crrfse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crrfse.FaultGroupID + } + if crrfse.FaultID != nil { + objectMap["FaultId"] = crrfse.FaultID + } + if crrfse.ServiceURI != nil { + objectMap["ServiceUri"] = crrfse.ServiceURI + } + if crrfse.PartitionID != nil { + objectMap["PartitionId"] = crrfse.PartitionID + } + if crrfse.ReplicaID != nil { + objectMap["ReplicaId"] = crrfse.ReplicaID + } + if crrfse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crrfse.EventInstanceID + } + if crrfse.TimeStamp != nil { + objectMap["TimeStamp"] = crrfse.TimeStamp + } + if crrfse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crrfse.HasCorrelatedEvents + } + if crrfse.Kind != "" { + objectMap["Kind"] = crrfse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &crrfse, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return &crrfse, true +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosRestartReplicaFaultScheduledEvent. +func (crrfse ChaosRestartReplicaFaultScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crrfse, true +} + +// ChaosSchedule defines the schedule used by Chaos. +type ChaosSchedule struct { + // StartDate - The date and time Chaos will start using this schedule. + StartDate *date.Time `json:"StartDate,omitempty"` + // ExpiryDate - The date and time Chaos will continue to use this schedule until. + ExpiryDate *date.Time `json:"ExpiryDate,omitempty"` + // ChaosParametersDictionary - A mapping of string names to Chaos Parameters to be referenced by Chaos Schedule Jobs. + ChaosParametersDictionary *[]ChaosParametersDictionaryItem `json:"ChaosParametersDictionary,omitempty"` + // Jobs - A list of all Chaos Schedule Jobs that will be automated by the schedule. + Jobs *[]ChaosScheduleJob `json:"Jobs,omitempty"` +} + +// ChaosScheduleDescription defines the Chaos Schedule used by Chaos and the version of the Chaos Schedule. +// The version value wraps back to 0 after surpassing 2,147,483,647. +type ChaosScheduleDescription struct { + autorest.Response `json:"-"` + // Version - The version number of the Schedule. + Version *int32 `json:"Version,omitempty"` + // Schedule - Defines the schedule used by Chaos. + Schedule *ChaosSchedule `json:"Schedule,omitempty"` +} + +// ChaosScheduleJob defines a repetition rule and parameters of Chaos to be used with the Chaos Schedule. +type ChaosScheduleJob struct { + // ChaosParameters - A reference to which Chaos Parameters of the Chaos Schedule to use. + ChaosParameters *string `json:"ChaosParameters,omitempty"` + // Days - Defines the days of the week that a Chaos Schedule Job will run for. + Days *ChaosScheduleJobActiveDaysOfWeek `json:"Days,omitempty"` + // Times - A list of Time Ranges that specify when during active days that this job will run. The times are interpreted as UTC. + Times *[]TimeRange `json:"Times,omitempty"` +} + +// ChaosScheduleJobActiveDaysOfWeek defines the days of the week that a Chaos Schedule Job will run for. +type ChaosScheduleJobActiveDaysOfWeek struct { + // Sunday - Indicates if the Chaos Schedule Job will run on Sunday + Sunday *bool `json:"Sunday,omitempty"` + // Monday - Indicates if the Chaos Schedule Job will run on Monday + Monday *bool `json:"Monday,omitempty"` + // Tuesday - Indicates if the Chaos Schedule Job will run on Tuesday + Tuesday *bool `json:"Tuesday,omitempty"` + // Wednesday - Indicates if the Chaos Schedule Job will run on Wednesday + Wednesday *bool `json:"Wednesday,omitempty"` + // Thursday - Indicates if the Chaos Schedule Job will run on Thursday + Thursday *bool `json:"Thursday,omitempty"` + // Friday - Indicates if the Chaos Schedule Job will run on Friday + Friday *bool `json:"Friday,omitempty"` + // Saturday - Indicates if the Chaos Schedule Job will run on Saturday + Saturday *bool `json:"Saturday,omitempty"` +} + +// ChaosStartedEvent chaos Started event. +type ChaosStartedEvent struct { + // MaxConcurrentFaults - Maximum number of concurrent faults. + MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"` + // TimeToRunInSeconds - Time to run in seconds. + TimeToRunInSeconds *float64 `json:"TimeToRunInSeconds,omitempty"` + // MaxClusterStabilizationTimeoutInSeconds - Maximum timeout for cluster stabilization in seconds. + MaxClusterStabilizationTimeoutInSeconds *float64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"` + // WaitTimeBetweenIterationsInSeconds - Wait time between iterations in seconds. + WaitTimeBetweenIterationsInSeconds *float64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"` + // WaitTimeBetweenFautlsInSeconds - Wait time between faults in seconds. + WaitTimeBetweenFautlsInSeconds *float64 `json:"WaitTimeBetweenFautlsInSeconds,omitempty"` + // MoveReplicaFaultEnabled - Indicates MoveReplica fault is enabled. + MoveReplicaFaultEnabled *bool `json:"MoveReplicaFaultEnabled,omitempty"` + // IncludedNodeTypeList - List of included Node types. + IncludedNodeTypeList *string `json:"IncludedNodeTypeList,omitempty"` + // IncludedApplicationList - List of included Applications. + IncludedApplicationList *string `json:"IncludedApplicationList,omitempty"` + // ClusterHealthPolicy - Health policy. + ClusterHealthPolicy *string `json:"ClusterHealthPolicy,omitempty"` + // ChaosContext - Chaos Context. + ChaosContext *string `json:"ChaosContext,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosStartedEvent. +func (cse ChaosStartedEvent) MarshalJSON() ([]byte, error) { + cse.Kind = KindChaosStarted + objectMap := make(map[string]interface{}) + if cse.MaxConcurrentFaults != nil { + objectMap["MaxConcurrentFaults"] = cse.MaxConcurrentFaults + } + if cse.TimeToRunInSeconds != nil { + objectMap["TimeToRunInSeconds"] = cse.TimeToRunInSeconds + } + if cse.MaxClusterStabilizationTimeoutInSeconds != nil { + objectMap["MaxClusterStabilizationTimeoutInSeconds"] = cse.MaxClusterStabilizationTimeoutInSeconds + } + if cse.WaitTimeBetweenIterationsInSeconds != nil { + objectMap["WaitTimeBetweenIterationsInSeconds"] = cse.WaitTimeBetweenIterationsInSeconds + } + if cse.WaitTimeBetweenFautlsInSeconds != nil { + objectMap["WaitTimeBetweenFautlsInSeconds"] = cse.WaitTimeBetweenFautlsInSeconds + } + if cse.MoveReplicaFaultEnabled != nil { + objectMap["MoveReplicaFaultEnabled"] = cse.MoveReplicaFaultEnabled + } + if cse.IncludedNodeTypeList != nil { + objectMap["IncludedNodeTypeList"] = cse.IncludedNodeTypeList + } + if cse.IncludedApplicationList != nil { + objectMap["IncludedApplicationList"] = cse.IncludedApplicationList + } + if cse.ClusterHealthPolicy != nil { + objectMap["ClusterHealthPolicy"] = cse.ClusterHealthPolicy + } + if cse.ChaosContext != nil { + objectMap["ChaosContext"] = cse.ChaosContext + } + if cse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cse.EventInstanceID + } + if cse.TimeStamp != nil { + objectMap["TimeStamp"] = cse.TimeStamp + } + if cse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents + } + if cse.Kind != "" { + objectMap["Kind"] = cse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return &cse, true +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cse, true +} + +// ChaosStoppedEvent chaos Stopped event. +type ChaosStoppedEvent struct { + // Reason - Describes reason. + Reason *string `json:"Reason,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) MarshalJSON() ([]byte, error) { + cse.Kind = KindChaosStopped + objectMap := make(map[string]interface{}) + if cse.Reason != nil { + objectMap["Reason"] = cse.Reason + } + if cse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cse.EventInstanceID + } + if cse.TimeStamp != nil { + objectMap["TimeStamp"] = cse.TimeStamp + } + if cse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents + } + if cse.Kind != "" { + objectMap["Kind"] = cse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return &cse, true +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cse, true +} + +// ChaosTargetFilter defines all filters for targeted Chaos faults, for example, faulting only certain node +// types or faulting only certain applications. +// If ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos +// faults only the entities that meet the ChaosTargetFilter +// specification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is +// not possible to specify an intersection +// of NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify "fault +// this application only when it is on that node type." +// Once an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity +// cannot be excluded using ChaosTargetFilter. Even if +// applicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be +// faulted because it happens to be on a node of nodeTypeY that is included +// in NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty, +// an ArgumentException is thrown. +type ChaosTargetFilter struct { + // NodeTypeInclusionList - A list of node types to include in Chaos faults. + // All types of faults (restart node, restart code package, remove replica, restart replica, move primary, and move secondary) are enabled for the nodes of these node types. + // If a nodetype (say NodeTypeX) does not appear in the NodeTypeInclusionList, then node level faults (like NodeRestart) will never be enabled for the nodes of + // NodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList. + // happens to reside on a node of NodeTypeX. + // At most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration. + NodeTypeInclusionList *[]string `json:"NodeTypeInclusionList,omitempty"` + // ApplicationInclusionList - A list of application URI's to include in Chaos faults. + // All replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos. + // Chaos may restart a code package only if the code package hosts replicas of these applications only. + // If an application does not appear in this list, it can still be faulted in some Chaos iteration if the application ends up on a node of a node type that is included in NodeTypeInclusionList. + // However, if applicationX is tied to nodeTypeY through placement constraints and applicationX is absent from ApplicationInclusionList and nodeTypeY is absent from NodeTypeInclusionList, then applicationX will never be faulted. + // At most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration. + ApplicationInclusionList *[]string `json:"ApplicationInclusionList,omitempty"` +} + +// CheckExistsPropertyBatchOperation represents a PropertyBatchOperation that compares the Boolean +// existence of a property with the Exists argument. +// The PropertyBatchOperation operation fails if the property's existence is not equal to the Exists +// argument. +// The CheckExistsPropertyBatchOperation is generally used as a precondition for the write operations in +// the batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckExistsPropertyBatchOperation struct { + // Exists - Whether or not the property should exist for the operation to pass. + Exists *bool `json:"Exists,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) MarshalJSON() ([]byte, error) { + cepbo.Kind = KindCheckExists + objectMap := make(map[string]interface{}) + if cepbo.Exists != nil { + objectMap["Exists"] = cepbo.Exists + } + if cepbo.PropertyName != nil { + objectMap["PropertyName"] = cepbo.PropertyName + } + if cepbo.Kind != "" { + objectMap["Kind"] = cepbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return &cepbo, true +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cepbo, true +} + +// CheckSequencePropertyBatchOperation compares the Sequence Number of a property with the SequenceNumber +// argument. +// A property's sequence number can be thought of as that property's version. +// Every time the property is modified, its sequence number is increased. +// The sequence number can be found in a property's metadata. +// The comparison fails if the sequence numbers are not equal. +// CheckSequencePropertyBatchOperation is generally used as a precondition for the write operations in the +// batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckSequencePropertyBatchOperation struct { + // SequenceNumber - The expected sequence number. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) MarshalJSON() ([]byte, error) { + cspbo.Kind = KindCheckSequence + objectMap := make(map[string]interface{}) + if cspbo.SequenceNumber != nil { + objectMap["SequenceNumber"] = cspbo.SequenceNumber + } + if cspbo.PropertyName != nil { + objectMap["PropertyName"] = cspbo.PropertyName + } + if cspbo.Kind != "" { + objectMap["Kind"] = cspbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return &cspbo, true +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cspbo, true +} + +// CheckValuePropertyBatchOperation represents a PropertyBatchOperation that compares the value of the +// property with the expected value. +// The CheckValuePropertyBatchOperation is generally used as a precondition for the write operations in the +// batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckValuePropertyBatchOperation struct { + // Value - The expected property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) MarshalJSON() ([]byte, error) { + cvpbo.Kind = KindCheckValue + objectMap := make(map[string]interface{}) + objectMap["Value"] = cvpbo.Value + if cvpbo.PropertyName != nil { + objectMap["PropertyName"] = cvpbo.PropertyName + } + if cvpbo.Kind != "" { + objectMap["Kind"] = cvpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return &cvpbo, true +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cvpbo, true +} + +// UnmarshalJSON is the custom unmarshaler for CheckValuePropertyBatchOperation struct. +func (cvpbo *CheckValuePropertyBatchOperation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + cvpbo.Value = value + } + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + cvpbo.PropertyName = &propertyName + } + case "Kind": + if v != nil { + var kind KindBasicPropertyBatchOperation + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + cvpbo.Kind = kind + } + } + } + + return nil +} + +// ClusterConfiguration information about the standalone cluster configuration. +type ClusterConfiguration struct { + autorest.Response `json:"-"` + // ClusterConfiguration - The contents of the cluster configuration file. + ClusterConfiguration *string `json:"ClusterConfiguration,omitempty"` +} + +// ClusterConfigurationUpgradeDescription describes the parameters for a standalone cluster configuration +// upgrade. +type ClusterConfigurationUpgradeDescription struct { + // ClusterConfig - The cluster configuration. + ClusterConfig *string `json:"ClusterConfig,omitempty"` + // HealthCheckRetryTimeout - The length of time between attempts to perform a health checks if the application or cluster is not healthy. + HealthCheckRetryTimeout *string `json:"HealthCheckRetryTimeout,omitempty"` + // HealthCheckWaitDurationInSeconds - The length of time to wait after completing an upgrade domain before starting the health checks process. + HealthCheckWaitDurationInSeconds *string `json:"HealthCheckWaitDurationInSeconds,omitempty"` + // HealthCheckStableDurationInSeconds - The length of time that the application or cluster must remain healthy. + HealthCheckStableDurationInSeconds *string `json:"HealthCheckStableDurationInSeconds,omitempty"` + // UpgradeDomainTimeoutInSeconds - The timeout for the upgrade domain. + UpgradeDomainTimeoutInSeconds *string `json:"UpgradeDomainTimeoutInSeconds,omitempty"` + // UpgradeTimeoutInSeconds - The upgrade timeout. + UpgradeTimeoutInSeconds *string `json:"UpgradeTimeoutInSeconds,omitempty"` + // MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of delta health degradation during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain delta health degradation during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"` + // ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"` +} + +// ClusterConfigurationUpgradeStatusInfo information about a standalone cluster configuration upgrade +// status. +type ClusterConfigurationUpgradeStatusInfo struct { + autorest.Response `json:"-"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // ProgressStatus - The cluster manifest version. + ProgressStatus *int32 `json:"ProgressStatus,omitempty"` + // ConfigVersion - The cluster configuration version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // Details - The cluster upgrade status details. + Details *string `json:"Details,omitempty"` +} + +// BasicClusterEvent represents the base for all Cluster Events. +type BasicClusterEvent interface { + AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) + AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) + AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) + AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) + AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) + AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) + AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) + AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) + AsChaosStartedEvent() (*ChaosStartedEvent, bool) + AsClusterEvent() (*ClusterEvent, bool) +} + +// ClusterEvent represents the base for all Cluster Events. +type ClusterEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicClusterEvent(body []byte) (BasicClusterEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindClusterHealthReportCreated): + var chrce ClusterHealthReportCreatedEvent + err := json.Unmarshal(body, &chrce) + return chrce, err + case string(KindClusterHealthReportExpired): + var chree ClusterHealthReportExpiredEvent + err := json.Unmarshal(body, &chree) + return chree, err + case string(KindClusterUpgradeComplete): + var cuce ClusterUpgradeCompleteEvent + err := json.Unmarshal(body, &cuce) + return cuce, err + case string(KindClusterUpgradeDomainComplete): + var cudce ClusterUpgradeDomainCompleteEvent + err := json.Unmarshal(body, &cudce) + return cudce, err + case string(KindClusterUpgradeRollbackComplete): + var curce ClusterUpgradeRollbackCompleteEvent + err := json.Unmarshal(body, &curce) + return curce, err + case string(KindClusterUpgradeRollbackStart): + var curse ClusterUpgradeRollbackStartEvent + err := json.Unmarshal(body, &curse) + return curse, err + case string(KindClusterUpgradeStart): + var cuse ClusterUpgradeStartEvent + err := json.Unmarshal(body, &cuse) + return cuse, err + case string(KindChaosStopped): + var cse ChaosStoppedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosStarted): + var cse ChaosStartedEvent + err := json.Unmarshal(body, &cse) + return cse, err + default: + var ce ClusterEvent + err := json.Unmarshal(body, &ce) + return ce, err + } +} +func unmarshalBasicClusterEventArray(body []byte) ([]BasicClusterEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ceArray := make([]BasicClusterEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ce, err := unmarshalBasicClusterEvent(*rawMessage) + if err != nil { + return nil, err + } + ceArray[index] = ce + } + return ceArray, nil +} + +// MarshalJSON is the custom marshaler for ClusterEvent. +func (ce ClusterEvent) MarshalJSON() ([]byte, error) { + ce.Kind = KindClusterEvent + objectMap := make(map[string]interface{}) + if ce.EventInstanceID != nil { + objectMap["EventInstanceId"] = ce.EventInstanceID + } + if ce.TimeStamp != nil { + objectMap["TimeStamp"] = ce.TimeStamp + } + if ce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ce.HasCorrelatedEvents + } + if ce.Kind != "" { + objectMap["Kind"] = ce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterEvent() (*ClusterEvent, bool) { + return &ce, true +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &ce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ce, true +} + +// ClusterHealth represents the health of the cluster. +// Contains the cluster aggregated health state, the cluster application and node health states as well as +// the health events and the unhealthy evaluations. +type ClusterHealth struct { + autorest.Response `json:"-"` + // NodeHealthStates - Cluster node health states as found in the health store. + NodeHealthStates *[]NodeHealthState `json:"NodeHealthStates,omitempty"` + // ApplicationHealthStates - Cluster application health states as found in the health store. + ApplicationHealthStates *[]ApplicationHealthState `json:"ApplicationHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ClusterHealthChunk represents the health chunk of the cluster. +// Contains the cluster aggregated health state, and the cluster entities that respect the input filter. +type ClusterHealthChunk struct { + autorest.Response `json:"-"` + // HealthState - The HealthState representing the aggregated health state of the cluster computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired cluster health policy and the application health policies. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeHealthStateChunks - The list of node health state chunks in the cluster that respect the filters in the cluster health chunk query description. + NodeHealthStateChunks *NodeHealthStateChunkList `json:"NodeHealthStateChunks,omitempty"` + // ApplicationHealthStateChunks - The list of application health state chunks in the cluster that respect the filters in the cluster health chunk query description. + ApplicationHealthStateChunks *ApplicationHealthStateChunkList `json:"ApplicationHealthStateChunks,omitempty"` +} + +// ClusterHealthChunkQueryDescription the cluster health chunk query description, which can specify the +// health policies to evaluate cluster health and very expressive filters to select which cluster entities +// to include in response. +type ClusterHealthChunkQueryDescription struct { + // NodeFilters - Defines a list of filters that specify which nodes to be included in the returned cluster health chunk. + // If no filters are specified, no nodes are returned. All the nodes are used to evaluate the cluster's aggregated health state, regardless of the input filters. + // The cluster health chunk query may specify multiple node filters. + // For example, it can specify a filter to return all nodes with health state Error and another filter to always include a node identified by its NodeName. + NodeFilters *[]NodeHealthStateFilter `json:"NodeFilters,omitempty"` + // ApplicationFilters - Defines a list of filters that specify which applications to be included in the returned cluster health chunk. + // If no filters are specified, no applications are returned. All the applications are used to evaluate the cluster's aggregated health state, regardless of the input filters. + // The cluster health chunk query may specify multiple application filters. + // For example, it can specify a filter to return all applications with health state Error and another filter to always include applications of a specified application type. + ApplicationFilters *[]ApplicationHealthStateFilter `json:"ApplicationFilters,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"` +} + +// ClusterHealthPolicies health policies to evaluate cluster health. +type ClusterHealthPolicies struct { + // ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications. + // Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health. + // If an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest). + // The map is empty by default. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` +} + +// ClusterHealthPolicy defines a health policy used to evaluate the health of the cluster or of a cluster +// node. +type ClusterHealthPolicy struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes before reporting an error. For example, to allow 10% of nodes to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + // In large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications before reporting an error. For example, to allow 10% of applications to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning. + // This is calculated by dividing the number of unhealthy applications over the total number of application instances in the cluster, excluding applications of application types that are included in the ApplicationTypeHealthPolicyMap. + // The computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // ApplicationTypeHealthPolicyMap - Defines a map with max percentage unhealthy applications for specific application types. + // Each entry specifies as key the application type name and as value an integer that represents the MaxPercentUnhealthyApplications percentage used to evaluate the applications of the specified application type. + // The application type health policy map can be used during cluster health evaluation to describe special application types. + // The application types included in the map are evaluated against the percentage specified in the map, and not with the global MaxPercentUnhealthyApplications defined in the cluster health policy. + // The applications of application types specified in the map are not counted against the global pool of applications. + // For example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type + // and assign it a value of 0% (that is, do not tolerate any failures). + // All other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances. + // The application type health policy map is used only if the cluster manifest enables application type health evaluation using the configuration entry for HealthManager/EnableApplicationTypeHealthEvaluation. + ApplicationTypeHealthPolicyMap *[]ApplicationTypeHealthPolicyMapItem `json:"ApplicationTypeHealthPolicyMap,omitempty"` +} + +// ClusterHealthReportCreatedEvent cluster Health Report Created event. +type ClusterHealthReportCreatedEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + chrce.Kind = KindClusterHealthReportCreated + objectMap := make(map[string]interface{}) + if chrce.SourceID != nil { + objectMap["SourceId"] = chrce.SourceID + } + if chrce.Property != nil { + objectMap["Property"] = chrce.Property + } + if chrce.HealthState != nil { + objectMap["HealthState"] = chrce.HealthState + } + if chrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = chrce.TimeToLiveMs + } + if chrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = chrce.SequenceNumber + } + if chrce.Description != nil { + objectMap["Description"] = chrce.Description + } + if chrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = chrce.RemoveWhenExpired + } + if chrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = chrce.SourceUtcTimestamp + } + if chrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = chrce.EventInstanceID + } + if chrce.TimeStamp != nil { + objectMap["TimeStamp"] = chrce.TimeStamp + } + if chrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = chrce.HasCorrelatedEvents + } + if chrce.Kind != "" { + objectMap["Kind"] = chrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &chrce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return &chrce, true +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportCreatedEvent. +func (chrce ClusterHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &chrce, true +} + +// ClusterHealthReportExpiredEvent cluster Health Report Expired event. +type ClusterHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + chree.Kind = KindClusterHealthReportExpired + objectMap := make(map[string]interface{}) + if chree.SourceID != nil { + objectMap["SourceId"] = chree.SourceID + } + if chree.Property != nil { + objectMap["Property"] = chree.Property + } + if chree.HealthState != nil { + objectMap["HealthState"] = chree.HealthState + } + if chree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = chree.TimeToLiveMs + } + if chree.SequenceNumber != nil { + objectMap["SequenceNumber"] = chree.SequenceNumber + } + if chree.Description != nil { + objectMap["Description"] = chree.Description + } + if chree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = chree.RemoveWhenExpired + } + if chree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = chree.SourceUtcTimestamp + } + if chree.EventInstanceID != nil { + objectMap["EventInstanceId"] = chree.EventInstanceID + } + if chree.TimeStamp != nil { + objectMap["TimeStamp"] = chree.TimeStamp + } + if chree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = chree.HasCorrelatedEvents + } + if chree.Kind != "" { + objectMap["Kind"] = chree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &chree, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return &chree, true +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &chree, true +} + +// ClusterManifest information about the cluster manifest. +type ClusterManifest struct { + autorest.Response `json:"-"` + // Manifest - The contents of the cluster manifest file. + Manifest *string `json:"Manifest,omitempty"` +} + +// ClusterUpgradeCompleteEvent cluster Upgrade Complete event. +type ClusterUpgradeCompleteEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) MarshalJSON() ([]byte, error) { + cuce.Kind = KindClusterUpgradeComplete + objectMap := make(map[string]interface{}) + if cuce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cuce.TargetClusterVersion + } + if cuce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = cuce.OverallUpgradeElapsedTimeInMs + } + if cuce.EventInstanceID != nil { + objectMap["EventInstanceId"] = cuce.EventInstanceID + } + if cuce.TimeStamp != nil { + objectMap["TimeStamp"] = cuce.TimeStamp + } + if cuce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cuce.HasCorrelatedEvents + } + if cuce.Kind != "" { + objectMap["Kind"] = cuce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cuce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return &cuce, true +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompleteEvent. +func (cuce ClusterUpgradeCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cuce, true +} + +// ClusterUpgradeDescriptionObject represents a ServiceFabric cluster upgrade +type ClusterUpgradeDescriptionObject struct { + // ConfigVersion - The cluster configuration version (specified in the cluster manifest). + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // CodeVersion - The ServiceFabric code version of the cluster. + CodeVersion *string `json:"CodeVersion,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications. + // Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health. + // If an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest). + // The map is empty by default. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// ClusterUpgradeDomainCompleteEvent cluster Upgrade Domain Complete event. +type ClusterUpgradeDomainCompleteEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // UpgradeState - State of upgrade. + UpgradeState *string `json:"UpgradeState,omitempty"` + // UpgradeDomains - Upgrade domains. + UpgradeDomains *string `json:"UpgradeDomains,omitempty"` + // UpgradeDomainElapsedTimeInMs - Duration of domain upgrade in milli-seconds. + UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) MarshalJSON() ([]byte, error) { + cudce.Kind = KindClusterUpgradeDomainComplete + objectMap := make(map[string]interface{}) + if cudce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cudce.TargetClusterVersion + } + if cudce.UpgradeState != nil { + objectMap["UpgradeState"] = cudce.UpgradeState + } + if cudce.UpgradeDomains != nil { + objectMap["UpgradeDomains"] = cudce.UpgradeDomains + } + if cudce.UpgradeDomainElapsedTimeInMs != nil { + objectMap["UpgradeDomainElapsedTimeInMs"] = cudce.UpgradeDomainElapsedTimeInMs + } + if cudce.EventInstanceID != nil { + objectMap["EventInstanceId"] = cudce.EventInstanceID + } + if cudce.TimeStamp != nil { + objectMap["TimeStamp"] = cudce.TimeStamp + } + if cudce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cudce.HasCorrelatedEvents + } + if cudce.Kind != "" { + objectMap["Kind"] = cudce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cudce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return &cudce, true +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompleteEvent. +func (cudce ClusterUpgradeDomainCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cudce, true +} + +// ClusterUpgradeHealthPolicyObject defines a health policy used to evaluate the health of the cluster +// during a cluster upgrade. +type ClusterUpgradeHealthPolicyObject struct { + // MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the nodes at the beginning of upgrade and the state of the nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. The default value is 10%. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the upgrade domain nodes at the beginning of upgrade and the state of the upgrade domain nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion for all completed upgrade domains to make sure the state of the upgrade domains is within tolerated limits. The default value is 15%. + MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"` +} + +// ClusterUpgradeProgressObject information about a cluster upgrade. +type ClusterUpgradeProgressObject struct { + autorest.Response `json:"-"` + // CodeVersion - The ServiceFabric code version of the cluster. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster configuration version (specified in the cluster manifest). + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // UpgradeDomains - List of upgrade domains and their statuses. + UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // NextUpgradeDomain - The name of the next upgrade domain to be processed. + NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeDescription - Represents a ServiceFabric cluster upgrade + UpgradeDescription *ClusterUpgradeDescriptionObject `json:"UpgradeDescription,omitempty"` + // UpgradeDurationInMilliseconds - The estimated elapsed time spent processing the current overall upgrade. + UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"` + // UpgradeDomainDurationInMilliseconds - The estimated elapsed time spent processing the current upgrade domain. + UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"` + // UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The start time of the upgrade in UTC. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The failure time of the upgrade in UTC. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - The detailed upgrade progress for nodes in the current upgrade domain at the point of failure. + UpgradeDomainProgressAtFailure *FailedUpgradeDomainProgressObject `json:"UpgradeDomainProgressAtFailure,omitempty"` +} + +// ClusterUpgradeRollbackCompleteEvent cluster Upgrade Rollback Complete event. +type ClusterUpgradeRollbackCompleteEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // FailureReason - Describes failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) MarshalJSON() ([]byte, error) { + curce.Kind = KindClusterUpgradeRollbackComplete + objectMap := make(map[string]interface{}) + if curce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = curce.TargetClusterVersion + } + if curce.FailureReason != nil { + objectMap["FailureReason"] = curce.FailureReason + } + if curce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = curce.OverallUpgradeElapsedTimeInMs + } + if curce.EventInstanceID != nil { + objectMap["EventInstanceId"] = curce.EventInstanceID + } + if curce.TimeStamp != nil { + objectMap["TimeStamp"] = curce.TimeStamp + } + if curce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = curce.HasCorrelatedEvents + } + if curce.Kind != "" { + objectMap["Kind"] = curce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &curce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return &curce, true +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompleteEvent. +func (curce ClusterUpgradeRollbackCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &curce, true +} + +// ClusterUpgradeRollbackStartEvent cluster Upgrade Rollback Start event. +type ClusterUpgradeRollbackStartEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // FailureReason - Describes failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) MarshalJSON() ([]byte, error) { + curse.Kind = KindClusterUpgradeRollbackStart + objectMap := make(map[string]interface{}) + if curse.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = curse.TargetClusterVersion + } + if curse.FailureReason != nil { + objectMap["FailureReason"] = curse.FailureReason + } + if curse.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = curse.OverallUpgradeElapsedTimeInMs + } + if curse.EventInstanceID != nil { + objectMap["EventInstanceId"] = curse.EventInstanceID + } + if curse.TimeStamp != nil { + objectMap["TimeStamp"] = curse.TimeStamp + } + if curse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = curse.HasCorrelatedEvents + } + if curse.Kind != "" { + objectMap["Kind"] = curse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &curse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return &curse, true +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartEvent. +func (curse ClusterUpgradeRollbackStartEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &curse, true +} + +// ClusterUpgradeStartEvent cluster Upgrade Start event. +type ClusterUpgradeStartEvent struct { + // CurrentClusterVersion - Current Cluster version. + CurrentClusterVersion *string `json:"CurrentClusterVersion,omitempty"` + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // UpgradeType - Type of upgrade. + UpgradeType *string `json:"UpgradeType,omitempty"` + // RollingUpgradeMode - Mode of upgrade. + RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"` + // FailureAction - Action if failed. + FailureAction *string `json:"FailureAction,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) MarshalJSON() ([]byte, error) { + cuse.Kind = KindClusterUpgradeStart + objectMap := make(map[string]interface{}) + if cuse.CurrentClusterVersion != nil { + objectMap["CurrentClusterVersion"] = cuse.CurrentClusterVersion + } + if cuse.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cuse.TargetClusterVersion + } + if cuse.UpgradeType != nil { + objectMap["UpgradeType"] = cuse.UpgradeType + } + if cuse.RollingUpgradeMode != nil { + objectMap["RollingUpgradeMode"] = cuse.RollingUpgradeMode + } + if cuse.FailureAction != nil { + objectMap["FailureAction"] = cuse.FailureAction + } + if cuse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cuse.EventInstanceID + } + if cuse.TimeStamp != nil { + objectMap["TimeStamp"] = cuse.TimeStamp + } + if cuse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cuse.HasCorrelatedEvents + } + if cuse.Kind != "" { + objectMap["Kind"] = cuse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cuse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return &cuse, true +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartEvent. +func (cuse ClusterUpgradeStartEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cuse, true +} + +// CodePackageEntryPoint information about setup or main entry point of a code package deployed on a +// Service Fabric node. +type CodePackageEntryPoint struct { + // EntryPointLocation - The location of entry point executable on the node. + EntryPointLocation *string `json:"EntryPointLocation,omitempty"` + // ProcessID - The process ID of the entry point. + ProcessID *string `json:"ProcessId,omitempty"` + // RunAsUserName - The user name under which entry point executable is run on the node. + RunAsUserName *string `json:"RunAsUserName,omitempty"` + // CodePackageEntryPointStatistics - Statistics about setup or main entry point of a code package deployed on a Service Fabric node. + CodePackageEntryPointStatistics *CodePackageEntryPointStatistics `json:"CodePackageEntryPointStatistics,omitempty"` + // Status - Specifies the status of the code package entry point deployed on a Service Fabric node. Possible values include: 'EntryPointStatusInvalid', 'EntryPointStatusPending', 'EntryPointStatusStarting', 'EntryPointStatusStarted', 'EntryPointStatusStopping', 'EntryPointStatusStopped' + Status EntryPointStatus `json:"Status,omitempty"` + // NextActivationTime - The time (in UTC) when the entry point executable will be run next. + NextActivationTime *date.Time `json:"NextActivationTime,omitempty"` + // InstanceID - The instance ID for current running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. Each time entry point executable is run, its instance id will change. + InstanceID *string `json:"InstanceId,omitempty"` +} + +// CodePackageEntryPointStatistics statistics about setup or main entry point of a code package deployed +// on a Service Fabric node. +type CodePackageEntryPointStatistics struct { + // LastExitCode - The last exit code of the entry point. + LastExitCode *string `json:"LastExitCode,omitempty"` + // LastActivationTime - The last time (in UTC) when Service Fabric attempted to run the entry point. + LastActivationTime *date.Time `json:"LastActivationTime,omitempty"` + // LastExitTime - The last time (in UTC) when the entry point finished running. + LastExitTime *date.Time `json:"LastExitTime,omitempty"` + // LastSuccessfulActivationTime - The last time (in UTC) when the entry point ran successfully. + LastSuccessfulActivationTime *date.Time `json:"LastSuccessfulActivationTime,omitempty"` + // LastSuccessfulExitTime - The last time (in UTC) when the entry point finished running gracefully. + LastSuccessfulExitTime *date.Time `json:"LastSuccessfulExitTime,omitempty"` + // ActivationCount - Number of times the entry point has run. + ActivationCount *string `json:"ActivationCount,omitempty"` + // ActivationFailureCount - Number of times the entry point failed to run. + ActivationFailureCount *string `json:"ActivationFailureCount,omitempty"` + // ContinuousActivationFailureCount - Number of times the entry point continuously failed to run. + ContinuousActivationFailureCount *string `json:"ContinuousActivationFailureCount,omitempty"` + // ExitCount - Number of times the entry point finished running. + ExitCount *string `json:"ExitCount,omitempty"` + // ExitFailureCount - Number of times the entry point failed to exit gracefully. + ExitFailureCount *string `json:"ExitFailureCount,omitempty"` + // ContinuousExitFailureCount - Number of times the entry point continuously failed to exit gracefully. + ContinuousExitFailureCount *string `json:"ContinuousExitFailureCount,omitempty"` +} + +// ComposeDeploymentStatusInfo information about a Service Fabric compose deployment. +type ComposeDeploymentStatusInfo struct { + autorest.Response `json:"-"` + // Name - The name of the deployment. + Name *string `json:"Name,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // Status - The status of the compose deployment. Possible values include: 'ComposeDeploymentStatusInvalid', 'ComposeDeploymentStatusProvisioning', 'ComposeDeploymentStatusCreating', 'ComposeDeploymentStatusReady', 'ComposeDeploymentStatusUnprovisioning', 'ComposeDeploymentStatusDeleting', 'ComposeDeploymentStatusFailed', 'ComposeDeploymentStatusUpgrading' + Status ComposeDeploymentStatus `json:"Status,omitempty"` + // StatusDetails - The status details of compose deployment including failure message. + StatusDetails *string `json:"StatusDetails,omitempty"` +} + +// ComposeDeploymentUpgradeDescription describes the parameters for a compose deployment upgrade. +type ComposeDeploymentUpgradeDescription struct { + // DeploymentName - The name of the deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ComposeFileContent - The content of the compose file that describes the deployment to create. + ComposeFileContent *string `json:"ComposeFileContent,omitempty"` + // RegistryCredential - Credential information to connect to container registry. + RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` +} + +// ComposeDeploymentUpgradeProgressInfo describes the parameters for a compose deployment upgrade. +type ComposeDeploymentUpgradeProgressInfo struct { + autorest.Response `json:"-"` + // DeploymentName - The name of the target deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ApplicationName - The name of the target application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UpgradeState - The state of the compose deployment upgrade. Possible values include: 'ComposeDeploymentUpgradeStateInvalid', 'ComposeDeploymentUpgradeStateProvisioningTarget', 'ComposeDeploymentUpgradeStateRollingForwardInProgress', 'ComposeDeploymentUpgradeStateRollingForwardPending', 'ComposeDeploymentUpgradeStateUnprovisioningCurrent', 'ComposeDeploymentUpgradeStateRollingForwardCompleted', 'ComposeDeploymentUpgradeStateRollingBackInProgress', 'ComposeDeploymentUpgradeStateUnprovisioningTarget', 'ComposeDeploymentUpgradeStateRollingBackCompleted', 'ComposeDeploymentUpgradeStateFailed' + UpgradeState ComposeDeploymentUpgradeState `json:"UpgradeState,omitempty"` + // UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade. + UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // UpgradeDuration - The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDuration *string `json:"UpgradeDuration,omitempty"` + // CurrentUpgradeDomainDuration - The estimated amount of time spent processing current Upgrade Domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + CurrentUpgradeDomainDuration *string `json:"CurrentUpgradeDomainDuration,omitempty"` + // ApplicationUnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + ApplicationUnhealthyEvaluations *[]HealthEvaluationWrapper `json:"ApplicationUnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The estimated UTC datetime when the upgrade started. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure. + UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"` + // ApplicationUpgradeStatusDetails - Additional details of application upgrade including failure message. + ApplicationUpgradeStatusDetails *string `json:"ApplicationUpgradeStatusDetails,omitempty"` +} + +// ContainerAPIRequestBody parameters for making container API call. +type ContainerAPIRequestBody struct { + // HTTPVerb - HTTP verb of container REST API, defaults to "GET" + HTTPVerb *string `json:"HttpVerb,omitempty"` + // URIPath - URI path of container REST API + URIPath *string `json:"UriPath,omitempty"` + // ContentType - Content type of container REST API request, defaults to "application/json" + ContentType *string `json:"Content-Type,omitempty"` + // Body - HTTP request body of container REST API + Body *string `json:"Body,omitempty"` +} + +// ContainerAPIResponse response body that wraps container API result. +type ContainerAPIResponse struct { + autorest.Response `json:"-"` + // ContainerAPIResult - Container API result. + ContainerAPIResult *ContainerAPIResult `json:"ContainerApiResult,omitempty"` +} + +// ContainerAPIResult container API result. +type ContainerAPIResult struct { + // Status - HTTP status code returned by the target container API + Status *int32 `json:"Status,omitempty"` + // ContentType - HTTP content type + ContentType *string `json:"Content-Type,omitempty"` + // ContentEncoding - HTTP content encoding + ContentEncoding *string `json:"Content-Encoding,omitempty"` + // Body - container API result body + Body *string `json:"Body,omitempty"` +} + +// ContainerCodePackageProperties describes a container and its runtime properties. +type ContainerCodePackageProperties struct { + // Name - The name of the code package. + Name *string `json:"name,omitempty"` + // Image - The Container image to use. + Image *string `json:"image,omitempty"` + // ImageRegistryCredential - Image registry credential. + ImageRegistryCredential *ImageRegistryCredential `json:"imageRegistryCredential,omitempty"` + // Entrypoint - Override for the default entry point in the container. + Entrypoint *string `json:"entrypoint,omitempty"` + // Commands - Command array to execute within the container in exec form. + Commands *[]string `json:"commands,omitempty"` + // EnvironmentVariables - The environment variables to set in this container + EnvironmentVariables *[]EnvironmentVariable `json:"environmentVariables,omitempty"` + // Settings - The settings to set in this container. The setting file path can be fetched from environment variable "Fabric_SettingPath". The path for Windows container is "C:\\secrets". The path for Linux container is "/var/secrets". + Settings *[]Setting `json:"settings,omitempty"` + // Labels - The labels to set in this container. + Labels *[]ContainerLabel `json:"labels,omitempty"` + // Endpoints - The endpoints exposed by this container. + Endpoints *[]EndpointProperties `json:"endpoints,omitempty"` + // Resources - This type describes the resource requirements for a container or a service. + Resources *ResourceRequirements `json:"resources,omitempty"` + // VolumeRefs - The volumes to be attached to the container. + VolumeRefs *[]ContainerVolume `json:"volumeRefs,omitempty"` + // InstanceView - Runtime information of a container instance. + InstanceView *ContainerInstanceView `json:"instanceView,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ContainerDeactivatedEvent container Deactivated event. +type ContainerDeactivatedEvent struct { + // ServiceName - Name of Service. + ServiceName *string `json:"ServiceName,omitempty"` + // ServicePackageName - Name of Service package. + ServicePackageName *string `json:"ServicePackageName,omitempty"` + // ServicePackageActivationID - Activation Id of Service package. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // IsExclusive - Indicates IsExclusive flag. + IsExclusive *bool `json:"IsExclusive,omitempty"` + // CodePackageName - Name of Code package. + CodePackageName *string `json:"CodePackageName,omitempty"` + // EntryPointType - Type of EntryPoint. + EntryPointType *string `json:"EntryPointType,omitempty"` + // ImageName - Name of Container image. + ImageName *string `json:"ImageName,omitempty"` + // ContainerName - Name of Container. + ContainerName *string `json:"ContainerName,omitempty"` + // HostID - Host Id. + HostID *string `json:"HostId,omitempty"` + // ExitCode - Exit code of process. + ExitCode *int64 `json:"ExitCode,omitempty"` + // UnexpectedTermination - Indicates if termination is unexpected. + UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"` + // StartTime - Start time of process. + StartTime *date.Time `json:"StartTime,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) MarshalJSON() ([]byte, error) { + cde.Kind = KindContainerDeactivated + objectMap := make(map[string]interface{}) + if cde.ServiceName != nil { + objectMap["ServiceName"] = cde.ServiceName + } + if cde.ServicePackageName != nil { + objectMap["ServicePackageName"] = cde.ServicePackageName + } + if cde.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = cde.ServicePackageActivationID + } + if cde.IsExclusive != nil { + objectMap["IsExclusive"] = cde.IsExclusive + } + if cde.CodePackageName != nil { + objectMap["CodePackageName"] = cde.CodePackageName + } + if cde.EntryPointType != nil { + objectMap["EntryPointType"] = cde.EntryPointType + } + if cde.ImageName != nil { + objectMap["ImageName"] = cde.ImageName + } + if cde.ContainerName != nil { + objectMap["ContainerName"] = cde.ContainerName + } + if cde.HostID != nil { + objectMap["HostId"] = cde.HostID + } + if cde.ExitCode != nil { + objectMap["ExitCode"] = cde.ExitCode + } + if cde.UnexpectedTermination != nil { + objectMap["UnexpectedTermination"] = cde.UnexpectedTermination + } + if cde.StartTime != nil { + objectMap["StartTime"] = cde.StartTime + } + if cde.ApplicationID != nil { + objectMap["ApplicationId"] = cde.ApplicationID + } + if cde.EventInstanceID != nil { + objectMap["EventInstanceId"] = cde.EventInstanceID + } + if cde.TimeStamp != nil { + objectMap["TimeStamp"] = cde.TimeStamp + } + if cde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cde.HasCorrelatedEvents + } + if cde.Kind != "" { + objectMap["Kind"] = cde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &cde, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return &cde, true +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ContainerDeactivatedEvent. +func (cde ContainerDeactivatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cde, true +} + +// ContainerEvent a container event. +type ContainerEvent struct { + // Name - The name of the container event. + Name *string `json:"name,omitempty"` + // Count - The count of the event. + Count *int32 `json:"count,omitempty"` + // FirstTimestamp - Date/time of the first event. + FirstTimestamp *string `json:"firstTimestamp,omitempty"` + // LastTimestamp - Date/time of the last event. + LastTimestamp *string `json:"lastTimestamp,omitempty"` + // Message - The event message + Message *string `json:"message,omitempty"` + // Type - The event type. + Type *string `json:"type,omitempty"` +} + +// ContainerInstanceEvent represents the base for all Container Events. +type ContainerInstanceEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) MarshalJSON() ([]byte, error) { + cie.Kind = KindContainerInstanceEvent + objectMap := make(map[string]interface{}) + if cie.EventInstanceID != nil { + objectMap["EventInstanceId"] = cie.EventInstanceID + } + if cie.TimeStamp != nil { + objectMap["TimeStamp"] = cie.TimeStamp + } + if cie.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cie.HasCorrelatedEvents + } + if cie.Kind != "" { + objectMap["Kind"] = cie.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return &cie, true +} + +// AsNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cie, true +} + +// ContainerInstanceView runtime information of a container instance. +type ContainerInstanceView struct { + // RestartCount - The number of times the container has been restarted. + RestartCount *int32 `json:"restartCount,omitempty"` + // CurrentState - Current container instance state. + CurrentState *ContainerState `json:"currentState,omitempty"` + // PreviousState - Previous container instance state. + PreviousState *ContainerState `json:"previousState,omitempty"` + // Events - The events of this container instance. + Events *[]ContainerEvent `json:"events,omitempty"` +} + +// ContainerLabel describes a container label. +type ContainerLabel struct { + // Name - The name of the container label. + Name *string `json:"name,omitempty"` + // Value - The value of the container label. + Value *string `json:"value,omitempty"` +} + +// ContainerLogs container logs. +type ContainerLogs struct { + autorest.Response `json:"-"` + // Content - Container logs. + Content *string `json:"Content,omitempty"` +} + +// ContainerState the container state. +type ContainerState struct { + // State - The state of this container + State *string `json:"state,omitempty"` + // StartTime - Date/time when the container state started. + StartTime *date.Time `json:"startTime,omitempty"` + // ExitCode - The container exit code. + ExitCode *string `json:"exitCode,omitempty"` + // FinishTime - Date/time when the container state finished. + FinishTime *date.Time `json:"finishTime,omitempty"` + // DetailStatus - Human-readable status of this state. + DetailStatus *string `json:"detailStatus,omitempty"` +} + +// ContainerVolume describes how a volume is attached to a container. +type ContainerVolume struct { + // Name - Name of the volume. + Name *string `json:"name,omitempty"` + // ReadOnly - The flag indicating whether the volume is read only. Default is 'false'. + ReadOnly *bool `json:"readOnly,omitempty"` + // DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed. + DestinationPath *string `json:"destinationPath,omitempty"` +} + +// CreateComposeDeploymentDescription defines description for creating a Service Fabric compose deployment. +type CreateComposeDeploymentDescription struct { + // DeploymentName - The name of the deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ComposeFileContent - The content of the compose file that describes the deployment to create. + ComposeFileContent *string `json:"ComposeFileContent,omitempty"` + // RegistryCredential - Credential information to connect to container registry. + RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"` +} + +// CurrentUpgradeDomainProgressInfo information about the current in-progress upgrade domain. +type CurrentUpgradeDomainProgressInfo struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// DeactivationIntentDescription describes the intent or reason for deactivating the node. +type DeactivationIntentDescription struct { + // DeactivationIntent - Describes the intent or reason for deactivating the node. The possible values are following. Possible values include: 'Pause', 'Restart', 'RemoveData' + DeactivationIntent DeactivationIntent `json:"DeactivationIntent,omitempty"` +} + +// DeletePropertyBatchOperation represents a PropertyBatchOperation that deletes a specified property if it +// exists. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type DeletePropertyBatchOperation struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) MarshalJSON() ([]byte, error) { + dpbo.Kind = KindDelete + objectMap := make(map[string]interface{}) + if dpbo.PropertyName != nil { + objectMap["PropertyName"] = dpbo.PropertyName + } + if dpbo.Kind != "" { + objectMap["Kind"] = dpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return &dpbo, true +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &dpbo, true +} + +// DeltaNodesCheckHealthEvaluation represents health evaluation for delta nodes, containing health +// evaluations for each unhealthy node that impacted current aggregated health state. +// Can be returned during cluster upgrade when the aggregated health state of the cluster is Warning or +// Error. +type DeltaNodesCheckHealthEvaluation struct { + // BaselineErrorCount - Number of nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade. + BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"` + // BaselineTotalCount - Total number of nodes in the health store at the beginning of the cluster upgrade. + BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"` + // MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of delta unhealthy nodes from the ClusterUpgradeHealthPolicy. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. + // Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) { + dnche.Kind = KindDeltaNodesCheck + objectMap := make(map[string]interface{}) + if dnche.BaselineErrorCount != nil { + objectMap["BaselineErrorCount"] = dnche.BaselineErrorCount + } + if dnche.BaselineTotalCount != nil { + objectMap["BaselineTotalCount"] = dnche.BaselineTotalCount + } + if dnche.MaxPercentDeltaUnhealthyNodes != nil { + objectMap["MaxPercentDeltaUnhealthyNodes"] = dnche.MaxPercentDeltaUnhealthyNodes + } + if dnche.TotalCount != nil { + objectMap["TotalCount"] = dnche.TotalCount + } + if dnche.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dnche.UnhealthyEvaluations + } + if dnche.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dnche.AggregatedHealthState + } + if dnche.Description != nil { + objectMap["Description"] = dnche.Description + } + if dnche.Kind != "" { + objectMap["Kind"] = dnche.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return &dnche, true +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dnche, true +} + +// DeployedApplicationHealth information about the health of an application deployed on a Service Fabric +// node. +type DeployedApplicationHealth struct { + autorest.Response `json:"-"` + // Name - Name of the application deployed on the node whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // NodeName - Name of the node where this application is deployed. + NodeName *string `json:"NodeName,omitempty"` + // DeployedServicePackageHealthStates - Deployed service package health states for the current deployed application as found in the health store. + DeployedServicePackageHealthStates *[]DeployedServicePackageHealthState `json:"DeployedServicePackageHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// DeployedApplicationHealthEvaluation represents health evaluation for a deployed application, containing +// information about the data and the algorithm used by the health store to evaluate health. +type DeployedApplicationHealthEvaluation struct { + // NodeName - Name of the node where the application is deployed to. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the deployed application. + // The types of the unhealthy evaluations can be DeployedServicePackagesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + dahe.Kind = KindDeployedApplication + objectMap := make(map[string]interface{}) + if dahe.NodeName != nil { + objectMap["NodeName"] = dahe.NodeName + } + if dahe.ApplicationName != nil { + objectMap["ApplicationName"] = dahe.ApplicationName + } + if dahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations + } + if dahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState + } + if dahe.Description != nil { + objectMap["Description"] = dahe.Description + } + if dahe.Kind != "" { + objectMap["Kind"] = dahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return &dahe, true +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dahe, true +} + +// DeployedApplicationHealthReportCreatedEvent deployed Application Health Report Created event. +type DeployedApplicationHealthReportCreatedEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + dahrce.Kind = KindDeployedApplicationHealthReportCreated + objectMap := make(map[string]interface{}) + if dahrce.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = dahrce.ApplicationInstanceID + } + if dahrce.NodeName != nil { + objectMap["NodeName"] = dahrce.NodeName + } + if dahrce.SourceID != nil { + objectMap["SourceId"] = dahrce.SourceID + } + if dahrce.Property != nil { + objectMap["Property"] = dahrce.Property + } + if dahrce.HealthState != nil { + objectMap["HealthState"] = dahrce.HealthState + } + if dahrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = dahrce.TimeToLiveMs + } + if dahrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = dahrce.SequenceNumber + } + if dahrce.Description != nil { + objectMap["Description"] = dahrce.Description + } + if dahrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dahrce.RemoveWhenExpired + } + if dahrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dahrce.SourceUtcTimestamp + } + if dahrce.ApplicationID != nil { + objectMap["ApplicationId"] = dahrce.ApplicationID + } + if dahrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = dahrce.EventInstanceID + } + if dahrce.TimeStamp != nil { + objectMap["TimeStamp"] = dahrce.TimeStamp + } + if dahrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dahrce.HasCorrelatedEvents + } + if dahrce.Kind != "" { + objectMap["Kind"] = dahrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dahrce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return &dahrce, true +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportCreatedEvent. +func (dahrce DeployedApplicationHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dahrce, true +} + +// DeployedApplicationHealthReportExpiredEvent deployed Application Health Report Expired event. +type DeployedApplicationHealthReportExpiredEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + dahree.Kind = KindDeployedApplicationHealthReportExpired + objectMap := make(map[string]interface{}) + if dahree.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = dahree.ApplicationInstanceID + } + if dahree.NodeName != nil { + objectMap["NodeName"] = dahree.NodeName + } + if dahree.SourceID != nil { + objectMap["SourceId"] = dahree.SourceID + } + if dahree.Property != nil { + objectMap["Property"] = dahree.Property + } + if dahree.HealthState != nil { + objectMap["HealthState"] = dahree.HealthState + } + if dahree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = dahree.TimeToLiveMs + } + if dahree.SequenceNumber != nil { + objectMap["SequenceNumber"] = dahree.SequenceNumber + } + if dahree.Description != nil { + objectMap["Description"] = dahree.Description + } + if dahree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dahree.RemoveWhenExpired + } + if dahree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dahree.SourceUtcTimestamp + } + if dahree.ApplicationID != nil { + objectMap["ApplicationId"] = dahree.ApplicationID + } + if dahree.EventInstanceID != nil { + objectMap["EventInstanceId"] = dahree.EventInstanceID + } + if dahree.TimeStamp != nil { + objectMap["TimeStamp"] = dahree.TimeStamp + } + if dahree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dahree.HasCorrelatedEvents + } + if dahree.Kind != "" { + objectMap["Kind"] = dahree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dahree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return &dahree, true +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dahree, true +} + +// DeployedApplicationHealthState represents the health state of a deployed application, which contains the +// entity identifier and the aggregated health state. +type DeployedApplicationHealthState struct { + // NodeName - Name of the node on which the service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// DeployedApplicationHealthStateChunk represents the health state chunk of a deployed application, which +// contains the node where the application is deployed, the aggregated health state and any deployed +// service packages that respect the chunk query description filters. +type DeployedApplicationHealthStateChunk struct { + // NodeName - The name of node where the application is deployed. + NodeName *string `json:"NodeName,omitempty"` + // DeployedServicePackageHealthStateChunks - The list of deployed service package health state chunks belonging to the deployed application that respect the filters in the cluster health chunk query description. + DeployedServicePackageHealthStateChunks *DeployedServicePackageHealthStateChunkList `json:"DeployedServicePackageHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedApplicationHealthStateChunkList the list of deployed application health state chunks that +// respect the input filters in the chunk query. Returned by get cluster health state chunks query. +type DeployedApplicationHealthStateChunkList struct { + // Items - The list of deployed application health state chunks that respect the input filters in the chunk query. + Items *[]DeployedApplicationHealthStateChunk `json:"Items,omitempty"` +} + +// DeployedApplicationHealthStateFilter defines matching criteria to determine whether a deployed +// application should be included as a child of an application in the cluster health chunk. +// The deployed applications are only returned if the parent application matches a filter specified in the +// cluster health chunk query description. +// One filter can match zero, one or multiple deployed applications, depending on its properties. +type DeployedApplicationHealthStateFilter struct { + // NodeNameFilter - The name of the node where the application is deployed in order to match the filter. + // If specified, the filter is applied only to the application deployed on the specified node. + // If the application is not deployed on the node with the specified name, no deployed application is returned in the cluster health chunk based on this filter. + // Otherwise, the deployed application is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all deployed applications that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + NodeNameFilter *string `json:"NodeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the deployed applications. It allows selecting deployed applications if they match the desired health states. + // The possible values are integer value of one of the following health states. Only deployed applications that match the filter are returned. All deployed applications are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching deployed application is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches deployed applications with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // DeployedServicePackageFilters - Defines a list of filters that specify which deployed service packages to be included in the returned cluster health chunk as children of the parent deployed application. The deployed service packages are returned only if the parent deployed application matches a filter. + // If the list is empty, no deployed service packages are returned. All the deployed service packages are used to evaluate the parent deployed application aggregated health state, regardless of the input filters. + // The deployed application filter may specify multiple deployed service package filters. + // For example, it can specify a filter to return all deployed service packages with health state Error and another filter to always include a deployed service package on a node. + DeployedServicePackageFilters *[]DeployedServicePackageHealthStateFilter `json:"DeployedServicePackageFilters,omitempty"` +} + +// DeployedApplicationInfo information about application deployed on the node. +type DeployedApplicationInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // Status - The status of the application deployed on the node. Following are the possible values. Possible values include: 'DeployedApplicationStatusInvalid', 'DeployedApplicationStatusDownloading', 'DeployedApplicationStatusActivating', 'DeployedApplicationStatusActive', 'DeployedApplicationStatusUpgrading', 'DeployedApplicationStatusDeactivating' + Status DeployedApplicationStatus `json:"Status,omitempty"` + // WorkDirectory - The work directory of the application on the node. The work directory can be used to store application data. + WorkDirectory *string `json:"WorkDirectory,omitempty"` + // LogDirectory - The log directory of the application on the node. The log directory can be used to store application logs. + LogDirectory *string `json:"LogDirectory,omitempty"` + // TempDirectory - The temp directory of the application on the node. The code packages belonging to the application are forked with this directory set as their temporary directory. + TempDirectory *string `json:"TempDirectory,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedApplicationsHealthEvaluation represents health evaluation for deployed applications, containing +// health evaluations for each unhealthy deployed application that impacted current aggregated health +// state. +// Can be returned when evaluating application health and the aggregated health state is either Error or +// Warning. +type DeployedApplicationsHealthEvaluation struct { + // MaxPercentUnhealthyDeployedApplications - Maximum allowed percentage of unhealthy deployed applications from the ApplicationHealthPolicy. + MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"` + // TotalCount - Total number of deployed applications of the application in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedApplicationHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + dahe.Kind = KindDeployedApplications + objectMap := make(map[string]interface{}) + if dahe.MaxPercentUnhealthyDeployedApplications != nil { + objectMap["MaxPercentUnhealthyDeployedApplications"] = dahe.MaxPercentUnhealthyDeployedApplications + } + if dahe.TotalCount != nil { + objectMap["TotalCount"] = dahe.TotalCount + } + if dahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations + } + if dahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState + } + if dahe.Description != nil { + objectMap["Description"] = dahe.Description + } + if dahe.Kind != "" { + objectMap["Kind"] = dahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return &dahe, true +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dahe, true +} + +// DeployedCodePackageInfo information about code package deployed on a Service Fabric node. +type DeployedCodePackageInfo struct { + // Name - The name of the code package. + Name *string `json:"Name,omitempty"` + // Version - The version of the code package specified in service manifest. + Version *string `json:"Version,omitempty"` + // ServiceManifestName - The name of service manifest that specified this code package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostType - Specifies the type of host for main entry point of a code package as specified in service manifest. Possible values include: 'HostTypeInvalid', 'HostTypeExeHost', 'HostTypeContainerHost' + HostType HostType `json:"HostType,omitempty"` + // HostIsolationMode - Specifies the isolation mode of main entry point of a code package when it's host type is ContainerHost. This is specified as part of container host policies in application manifest while importing service manifest. Possible values include: 'HostIsolationModeNone', 'HostIsolationModeProcess', 'HostIsolationModeHyperV' + HostIsolationMode HostIsolationMode `json:"HostIsolationMode,omitempty"` + // Status - Specifies the status of a deployed application or service package on a Service Fabric node. Possible values include: 'DeploymentStatusInvalid', 'DeploymentStatusDownloading', 'DeploymentStatusActivating', 'DeploymentStatusActive', 'DeploymentStatusUpgrading', 'DeploymentStatusDeactivating' + Status DeploymentStatus `json:"Status,omitempty"` + // RunFrequencyInterval - The interval at which code package is run. This is used for periodic code package. + RunFrequencyInterval *string `json:"RunFrequencyInterval,omitempty"` + // SetupEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node. + SetupEntryPoint *CodePackageEntryPoint `json:"SetupEntryPoint,omitempty"` + // MainEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node. + MainEntryPoint *CodePackageEntryPoint `json:"MainEntryPoint,omitempty"` +} + +// DeployedServiceHealthReportCreatedEvent deployed Service Health Report Created event. +type DeployedServiceHealthReportCreatedEvent struct { + // ServiceManifestName - Service manifest name. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageInstanceID - Id of Service package instance. + ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TTLTimespan - Time to live in milli-seconds. + TTLTimespan *int64 `json:"TTLTimespan,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + dshrce.Kind = KindDeployedServiceHealthReportCreated + objectMap := make(map[string]interface{}) + if dshrce.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dshrce.ServiceManifestName + } + if dshrce.ServicePackageInstanceID != nil { + objectMap["ServicePackageInstanceId"] = dshrce.ServicePackageInstanceID + } + if dshrce.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dshrce.ServicePackageActivationID + } + if dshrce.NodeName != nil { + objectMap["NodeName"] = dshrce.NodeName + } + if dshrce.SourceID != nil { + objectMap["SourceId"] = dshrce.SourceID + } + if dshrce.Property != nil { + objectMap["Property"] = dshrce.Property + } + if dshrce.HealthState != nil { + objectMap["HealthState"] = dshrce.HealthState + } + if dshrce.TTLTimespan != nil { + objectMap["TTLTimespan"] = dshrce.TTLTimespan + } + if dshrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = dshrce.SequenceNumber + } + if dshrce.Description != nil { + objectMap["Description"] = dshrce.Description + } + if dshrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dshrce.RemoveWhenExpired + } + if dshrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dshrce.SourceUtcTimestamp + } + if dshrce.ApplicationID != nil { + objectMap["ApplicationId"] = dshrce.ApplicationID + } + if dshrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = dshrce.EventInstanceID + } + if dshrce.TimeStamp != nil { + objectMap["TimeStamp"] = dshrce.TimeStamp + } + if dshrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dshrce.HasCorrelatedEvents + } + if dshrce.Kind != "" { + objectMap["Kind"] = dshrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dshrce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return &dshrce, true +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportCreatedEvent. +func (dshrce DeployedServiceHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dshrce, true +} + +// DeployedServiceHealthReportExpiredEvent deployed Service Health Report Expired event. +type DeployedServiceHealthReportExpiredEvent struct { + // ServiceManifest - Service manifest name. + ServiceManifest *string `json:"ServiceManifest,omitempty"` + // ServicePackageInstanceID - Id of Service package instance. + ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TTLTimespan - Time to live in milli-seconds. + TTLTimespan *int64 `json:"TTLTimespan,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + dshree.Kind = KindDeployedServiceHealthReportExpired + objectMap := make(map[string]interface{}) + if dshree.ServiceManifest != nil { + objectMap["ServiceManifest"] = dshree.ServiceManifest + } + if dshree.ServicePackageInstanceID != nil { + objectMap["ServicePackageInstanceId"] = dshree.ServicePackageInstanceID + } + if dshree.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dshree.ServicePackageActivationID + } + if dshree.NodeName != nil { + objectMap["NodeName"] = dshree.NodeName + } + if dshree.SourceID != nil { + objectMap["SourceId"] = dshree.SourceID + } + if dshree.Property != nil { + objectMap["Property"] = dshree.Property + } + if dshree.HealthState != nil { + objectMap["HealthState"] = dshree.HealthState + } + if dshree.TTLTimespan != nil { + objectMap["TTLTimespan"] = dshree.TTLTimespan + } + if dshree.SequenceNumber != nil { + objectMap["SequenceNumber"] = dshree.SequenceNumber + } + if dshree.Description != nil { + objectMap["Description"] = dshree.Description + } + if dshree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dshree.RemoveWhenExpired + } + if dshree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dshree.SourceUtcTimestamp + } + if dshree.ApplicationID != nil { + objectMap["ApplicationId"] = dshree.ApplicationID + } + if dshree.EventInstanceID != nil { + objectMap["EventInstanceId"] = dshree.EventInstanceID + } + if dshree.TimeStamp != nil { + objectMap["TimeStamp"] = dshree.TimeStamp + } + if dshree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dshree.HasCorrelatedEvents + } + if dshree.Kind != "" { + objectMap["Kind"] = dshree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dshree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return &dshree, true +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServiceHealthReportExpiredEvent. +func (dshree DeployedServiceHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dshree, true +} + +// DeployedServicePackageHealth information about the health of a service package for a specific +// application deployed on a Service Fabric node. +type DeployedServicePackageHealth struct { + autorest.Response `json:"-"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - Name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // NodeName - Name of the node where this service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// DeployedServicePackageHealthEvaluation represents health evaluation for a deployed service package, +// containing information about the data and the algorithm used by health store to evaluate health. The +// evaluation is returned only when the aggregated health state is either Error or Warning. +type DeployedServicePackageHealthEvaluation struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - The name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state. The type of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) MarshalJSON() ([]byte, error) { + dsphe.Kind = KindDeployedServicePackage + objectMap := make(map[string]interface{}) + if dsphe.NodeName != nil { + objectMap["NodeName"] = dsphe.NodeName + } + if dsphe.ApplicationName != nil { + objectMap["ApplicationName"] = dsphe.ApplicationName + } + if dsphe.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dsphe.ServiceManifestName + } + if dsphe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations + } + if dsphe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState + } + if dsphe.Description != nil { + objectMap["Description"] = dsphe.Description + } + if dsphe.Kind != "" { + objectMap["Kind"] = dsphe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return &dsphe, true +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dsphe, true +} + +// DeployedServicePackageHealthState represents the health state of a deployed service package, containing +// the entity identifier and the aggregated health state. +type DeployedServicePackageHealthState struct { + // NodeName - Name of the node on which the service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - Name of the manifest describing the service package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// DeployedServicePackageHealthStateChunk represents the health state chunk of a deployed service package, +// which contains the service manifest name and the service package aggregated health state. +type DeployedServicePackageHealthStateChunk struct { + // ServiceManifestName - The name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedServicePackageHealthStateChunkList the list of deployed service package health state chunks that +// respect the input filters in the chunk query. Returned by get cluster health state chunks query. +type DeployedServicePackageHealthStateChunkList struct { + // Items - The list of deployed service package health state chunks that respect the input filters in the chunk query. + Items *[]DeployedServicePackageHealthStateChunk `json:"Items,omitempty"` +} + +// DeployedServicePackageHealthStateFilter defines matching criteria to determine whether a deployed +// service package should be included as a child of a deployed application in the cluster health chunk. +// The deployed service packages are only returned if the parent entities match a filter specified in the +// cluster health chunk query description. The parent deployed application and its parent application must +// be included in the cluster health chunk. +// One filter can match zero, one or multiple deployed service packages, depending on its properties. +type DeployedServicePackageHealthStateFilter struct { + // ServiceManifestNameFilter - The name of the service manifest which identifies the deployed service packages that matches the filter. + // If specified, the filter is applied only to the specified deployed service packages, if any. + // If no deployed service packages with specified manifest name exist, nothing is returned in the cluster health chunk based on this filter. + // If any deployed service package exists, they are included in the cluster health chunk if it respects the other filter properties. + // If not specified, all deployed service packages that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ServiceManifestNameFilter *string `json:"ServiceManifestNameFilter,omitempty"` + // ServicePackageActivationIDFilter - The activation ID of a deployed service package that matches the filter. + // If not specified, the filter applies to all deployed service packages that match the other parameters. + // If specified, the filter matches only the deployed service package with the specified activation ID. + ServicePackageActivationIDFilter *string `json:"ServicePackageActivationIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the deployed service packages. It allows selecting deployed service packages if they match the desired health states. + // The possible values are integer value of one of the following health states. Only deployed service packages that match the filter are returned. All deployed service packages are used to evaluate the parent deployed application aggregated health state. + // If not specified, default value is None, unless the deployed service package ID is specified. If the filter has default value and deployed service package ID is specified, the matching deployed service package is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches deployed service packages with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// DeployedServicePackageInfo information about service package deployed on a Service Fabric node. +type DeployedServicePackageInfo struct { + // Name - The name of the service package as specified in the service manifest. + Name *string `json:"Name,omitempty"` + // Version - The version of the service package specified in service manifest. + Version *string `json:"Version,omitempty"` + // Status - Specifies the status of a deployed application or service package on a Service Fabric node. Possible values include: 'DeploymentStatusInvalid', 'DeploymentStatusDownloading', 'DeploymentStatusActivating', 'DeploymentStatusActive', 'DeploymentStatusUpgrading', 'DeploymentStatusDeactivating' + Status DeploymentStatus `json:"Status,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` +} + +// DeployedServicePackagesHealthEvaluation represents health evaluation for deployed service packages, +// containing health evaluations for each unhealthy deployed service package that impacted current +// aggregated health state. Can be returned when evaluating deployed application health and the aggregated +// health state is either Error or Warning. +type DeployedServicePackagesHealthEvaluation struct { + // TotalCount - Total number of deployed service packages of the deployed application in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedServicePackageHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) MarshalJSON() ([]byte, error) { + dsphe.Kind = KindDeployedServicePackages + objectMap := make(map[string]interface{}) + if dsphe.TotalCount != nil { + objectMap["TotalCount"] = dsphe.TotalCount + } + if dsphe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations + } + if dsphe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState + } + if dsphe.Description != nil { + objectMap["Description"] = dsphe.Description + } + if dsphe.Kind != "" { + objectMap["Kind"] = dsphe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return &dsphe, true +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dsphe, true +} + +// BasicDeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node. +type BasicDeployedServiceReplicaDetailInfo interface { + AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) + AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) + AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) +} + +// DeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node. +type DeployedServiceReplicaDetailInfo struct { + autorest.Response `json:"-"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicDeployedServiceReplicaDetailInfo(body []byte) (BasicDeployedServiceReplicaDetailInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindStateful1): + var dssrdi DeployedStatefulServiceReplicaDetailInfo + err := json.Unmarshal(body, &dssrdi) + return dssrdi, err + case string(ServiceKindStateless1): + var dssidi DeployedStatelessServiceInstanceDetailInfo + err := json.Unmarshal(body, &dssidi) + return dssidi, err + default: + var dsrdi DeployedServiceReplicaDetailInfo + err := json.Unmarshal(body, &dsrdi) + return dsrdi, err + } +} +func unmarshalBasicDeployedServiceReplicaDetailInfoArray(body []byte) ([]BasicDeployedServiceReplicaDetailInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dsrdiArray := make([]BasicDeployedServiceReplicaDetailInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(*rawMessage) + if err != nil { + return nil, err + } + dsrdiArray[index] = dsrdi + } + return dsrdiArray, nil +} + +// MarshalJSON is the custom marshaler for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) { + dsrdi.ServiceKind = ServiceKindDeployedServiceReplicaDetailInfo + objectMap := make(map[string]interface{}) + if dsrdi.ServiceName != nil { + objectMap["ServiceName"] = dsrdi.ServiceName + } + if dsrdi.PartitionID != nil { + objectMap["PartitionId"] = dsrdi.PartitionID + } + if dsrdi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dsrdi.CurrentServiceOperation + } + if dsrdi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dsrdi.CurrentServiceOperationStartTimeUtc + } + if dsrdi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dsrdi.ReportedLoad + } + if dsrdi.ServiceKind != "" { + objectMap["ServiceKind"] = dsrdi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return &dsrdi, true +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dsrdi, true +} + +// DeployedServiceReplicaDetailInfoModel ... +type DeployedServiceReplicaDetailInfoModel struct { + autorest.Response `json:"-"` + Value BasicDeployedServiceReplicaDetailInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for DeployedServiceReplicaDetailInfoModel struct. +func (dsrdim *DeployedServiceReplicaDetailInfoModel) UnmarshalJSON(body []byte) error { + dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(body) + if err != nil { + return err + } + dsrdim.Value = dsrdi + + return nil +} + +// BasicDeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node. +type BasicDeployedServiceReplicaInfo interface { + AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) + AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) + AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) +} + +// DeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node. +type DeployedServiceReplicaInfo struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicDeployedServiceReplicaInfo(body []byte) (BasicDeployedServiceReplicaInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful): + var dssri DeployedStatefulServiceReplicaInfo + err := json.Unmarshal(body, &dssri) + return dssri, err + case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless): + var dssii DeployedStatelessServiceInstanceInfo + err := json.Unmarshal(body, &dssii) + return dssii, err + default: + var dsri DeployedServiceReplicaInfo + err := json.Unmarshal(body, &dsri) + return dsri, err + } +} +func unmarshalBasicDeployedServiceReplicaInfoArray(body []byte) ([]BasicDeployedServiceReplicaInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dsriArray := make([]BasicDeployedServiceReplicaInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsri, err := unmarshalBasicDeployedServiceReplicaInfo(*rawMessage) + if err != nil { + return nil, err + } + dsriArray[index] = dsri + } + return dsriArray, nil +} + +// MarshalJSON is the custom marshaler for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) MarshalJSON() ([]byte, error) { + dsri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo + objectMap := make(map[string]interface{}) + if dsri.ServiceName != nil { + objectMap["ServiceName"] = dsri.ServiceName + } + if dsri.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dsri.ServiceTypeName + } + if dsri.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dsri.ServiceManifestName + } + if dsri.CodePackageName != nil { + objectMap["CodePackageName"] = dsri.CodePackageName + } + if dsri.PartitionID != nil { + objectMap["PartitionId"] = dsri.PartitionID + } + if dsri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dsri.ReplicaStatus + } + if dsri.Address != nil { + objectMap["Address"] = dsri.Address + } + if dsri.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dsri.ServicePackageActivationID + } + if dsri.HostProcessID != nil { + objectMap["HostProcessId"] = dsri.HostProcessID + } + if dsri.ServiceKind != "" { + objectMap["ServiceKind"] = dsri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return &dsri, true +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dsri, true +} + +// DeployedServiceTypeInfo information about service type deployed on a node, information such as the +// status of the service type registration on a node. +type DeployedServiceTypeInfo struct { + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that registered the service type. + CodePackageName *string `json:"CodePackageName,omitempty"` + // Status - The status of the service type registration on the node. Possible values include: 'ServiceTypeRegistrationStatusInvalid', 'ServiceTypeRegistrationStatusDisabled', 'ServiceTypeRegistrationStatusEnabled', 'ServiceTypeRegistrationStatusRegistered' + Status ServiceTypeRegistrationStatus `json:"Status,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` +} + +// DeployedStatefulServiceReplicaDetailInfo information about a stateful replica running in a code package. +// Note DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName, +// PartitionId and replicaId. +type DeployedStatefulServiceReplicaDetailInfo struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // CurrentReplicatorOperation - Specifies the operation currently being executed by the Replicator. Possible values include: 'ReplicatorOperationNameInvalid', 'ReplicatorOperationNameNone', 'ReplicatorOperationNameOpen', 'ReplicatorOperationNameChangeRole', 'ReplicatorOperationNameUpdateEpoch', 'ReplicatorOperationNameClose', 'ReplicatorOperationNameAbort', 'ReplicatorOperationNameOnDataLoss', 'ReplicatorOperationNameWaitForCatchup', 'ReplicatorOperationNameBuild' + CurrentReplicatorOperation ReplicatorOperationName `json:"CurrentReplicatorOperation,omitempty"` + // ReadStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum' + ReadStatus PartitionAccessStatus `json:"ReadStatus,omitempty"` + // WriteStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum' + WriteStatus PartitionAccessStatus `json:"WriteStatus,omitempty"` + // ReplicatorStatus - Represents a base class for primary or secondary replicator status. + // Contains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc. + ReplicatorStatus BasicReplicatorStatus `json:"ReplicatorStatus,omitempty"` + // ReplicaStatus - Key value store related information for the replica. + ReplicaStatus *KeyValueStoreReplicaStatus `json:"ReplicaStatus,omitempty"` + // DeployedServiceReplicaQueryResult - Information about a stateful service replica deployed on a node. + DeployedServiceReplicaQueryResult *DeployedStatefulServiceReplicaInfo `json:"DeployedServiceReplicaQueryResult,omitempty"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) { + dssrdi.ServiceKind = ServiceKindStateful1 + objectMap := make(map[string]interface{}) + if dssrdi.ReplicaID != nil { + objectMap["ReplicaId"] = dssrdi.ReplicaID + } + if dssrdi.CurrentReplicatorOperation != "" { + objectMap["CurrentReplicatorOperation"] = dssrdi.CurrentReplicatorOperation + } + if dssrdi.ReadStatus != "" { + objectMap["ReadStatus"] = dssrdi.ReadStatus + } + if dssrdi.WriteStatus != "" { + objectMap["WriteStatus"] = dssrdi.WriteStatus + } + objectMap["ReplicatorStatus"] = dssrdi.ReplicatorStatus + if dssrdi.ReplicaStatus != nil { + objectMap["ReplicaStatus"] = dssrdi.ReplicaStatus + } + if dssrdi.DeployedServiceReplicaQueryResult != nil { + objectMap["DeployedServiceReplicaQueryResult"] = dssrdi.DeployedServiceReplicaQueryResult + } + if dssrdi.ServiceName != nil { + objectMap["ServiceName"] = dssrdi.ServiceName + } + if dssrdi.PartitionID != nil { + objectMap["PartitionId"] = dssrdi.PartitionID + } + if dssrdi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dssrdi.CurrentServiceOperation + } + if dssrdi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dssrdi.CurrentServiceOperationStartTimeUtc + } + if dssrdi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dssrdi.ReportedLoad + } + if dssrdi.ServiceKind != "" { + objectMap["ServiceKind"] = dssrdi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return &dssrdi, true +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dssrdi, true +} + +// UnmarshalJSON is the custom unmarshaler for DeployedStatefulServiceReplicaDetailInfo struct. +func (dssrdi *DeployedStatefulServiceReplicaDetailInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ReplicaId": + if v != nil { + var replicaID string + err = json.Unmarshal(*v, &replicaID) + if err != nil { + return err + } + dssrdi.ReplicaID = &replicaID + } + case "CurrentReplicatorOperation": + if v != nil { + var currentReplicatorOperation ReplicatorOperationName + err = json.Unmarshal(*v, ¤tReplicatorOperation) + if err != nil { + return err + } + dssrdi.CurrentReplicatorOperation = currentReplicatorOperation + } + case "ReadStatus": + if v != nil { + var readStatus PartitionAccessStatus + err = json.Unmarshal(*v, &readStatus) + if err != nil { + return err + } + dssrdi.ReadStatus = readStatus + } + case "WriteStatus": + if v != nil { + var writeStatus PartitionAccessStatus + err = json.Unmarshal(*v, &writeStatus) + if err != nil { + return err + } + dssrdi.WriteStatus = writeStatus + } + case "ReplicatorStatus": + if v != nil { + replicatorStatus, err := unmarshalBasicReplicatorStatus(*v) + if err != nil { + return err + } + dssrdi.ReplicatorStatus = replicatorStatus + } + case "ReplicaStatus": + if v != nil { + var replicaStatus KeyValueStoreReplicaStatus + err = json.Unmarshal(*v, &replicaStatus) + if err != nil { + return err + } + dssrdi.ReplicaStatus = &replicaStatus + } + case "DeployedServiceReplicaQueryResult": + if v != nil { + var deployedServiceReplicaQueryResult DeployedStatefulServiceReplicaInfo + err = json.Unmarshal(*v, &deployedServiceReplicaQueryResult) + if err != nil { + return err + } + dssrdi.DeployedServiceReplicaQueryResult = &deployedServiceReplicaQueryResult + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + dssrdi.ServiceName = &serviceName + } + case "PartitionId": + if v != nil { + var partitionID uuid.UUID + err = json.Unmarshal(*v, &partitionID) + if err != nil { + return err + } + dssrdi.PartitionID = &partitionID + } + case "CurrentServiceOperation": + if v != nil { + var currentServiceOperation ServiceOperationName + err = json.Unmarshal(*v, ¤tServiceOperation) + if err != nil { + return err + } + dssrdi.CurrentServiceOperation = currentServiceOperation + } + case "CurrentServiceOperationStartTimeUtc": + if v != nil { + var currentServiceOperationStartTimeUtc date.Time + err = json.Unmarshal(*v, ¤tServiceOperationStartTimeUtc) + if err != nil { + return err + } + dssrdi.CurrentServiceOperationStartTimeUtc = ¤tServiceOperationStartTimeUtc + } + case "ReportedLoad": + if v != nil { + var reportedLoad []LoadMetricReportInfo + err = json.Unmarshal(*v, &reportedLoad) + if err != nil { + return err + } + dssrdi.ReportedLoad = &reportedLoad + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicDeployedServiceReplicaDetailInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + dssrdi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// DeployedStatefulServiceReplicaInfo information about a stateful service replica deployed on a node. +type DeployedStatefulServiceReplicaInfo struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"` + // ReconfigurationInformation - Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time. + ReconfigurationInformation *ReconfigurationInformation `json:"ReconfigurationInformation,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) { + dssri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if dssri.ReplicaID != nil { + objectMap["ReplicaId"] = dssri.ReplicaID + } + if dssri.ReplicaRole != "" { + objectMap["ReplicaRole"] = dssri.ReplicaRole + } + if dssri.ReconfigurationInformation != nil { + objectMap["ReconfigurationInformation"] = dssri.ReconfigurationInformation + } + if dssri.ServiceName != nil { + objectMap["ServiceName"] = dssri.ServiceName + } + if dssri.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dssri.ServiceTypeName + } + if dssri.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dssri.ServiceManifestName + } + if dssri.CodePackageName != nil { + objectMap["CodePackageName"] = dssri.CodePackageName + } + if dssri.PartitionID != nil { + objectMap["PartitionId"] = dssri.PartitionID + } + if dssri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dssri.ReplicaStatus + } + if dssri.Address != nil { + objectMap["Address"] = dssri.Address + } + if dssri.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dssri.ServicePackageActivationID + } + if dssri.HostProcessID != nil { + objectMap["HostProcessId"] = dssri.HostProcessID + } + if dssri.ServiceKind != "" { + objectMap["ServiceKind"] = dssri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return &dssri, true +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dssri, true +} + +// DeployedStatelessServiceInstanceDetailInfo information about a stateless instance running in a code +// package. Note that DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, +// ServiceName, PartitionId and InstanceId. +type DeployedStatelessServiceInstanceDetailInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // DeployedServiceReplicaQueryResult - Information about a stateless service instance deployed on a node. + DeployedServiceReplicaQueryResult *DeployedStatelessServiceInstanceInfo `json:"DeployedServiceReplicaQueryResult,omitempty"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) MarshalJSON() ([]byte, error) { + dssidi.ServiceKind = ServiceKindStateless1 + objectMap := make(map[string]interface{}) + if dssidi.InstanceID != nil { + objectMap["InstanceId"] = dssidi.InstanceID + } + if dssidi.DeployedServiceReplicaQueryResult != nil { + objectMap["DeployedServiceReplicaQueryResult"] = dssidi.DeployedServiceReplicaQueryResult + } + if dssidi.ServiceName != nil { + objectMap["ServiceName"] = dssidi.ServiceName + } + if dssidi.PartitionID != nil { + objectMap["PartitionId"] = dssidi.PartitionID + } + if dssidi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dssidi.CurrentServiceOperation + } + if dssidi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dssidi.CurrentServiceOperationStartTimeUtc + } + if dssidi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dssidi.ReportedLoad + } + if dssidi.ServiceKind != "" { + objectMap["ServiceKind"] = dssidi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return &dssidi, true +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dssidi, true +} + +// DeployedStatelessServiceInstanceInfo information about a stateless service instance deployed on a node. +type DeployedStatelessServiceInstanceInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) { + dssii.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if dssii.InstanceID != nil { + objectMap["InstanceId"] = dssii.InstanceID + } + if dssii.ServiceName != nil { + objectMap["ServiceName"] = dssii.ServiceName + } + if dssii.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dssii.ServiceTypeName + } + if dssii.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dssii.ServiceManifestName + } + if dssii.CodePackageName != nil { + objectMap["CodePackageName"] = dssii.CodePackageName + } + if dssii.PartitionID != nil { + objectMap["PartitionId"] = dssii.PartitionID + } + if dssii.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dssii.ReplicaStatus + } + if dssii.Address != nil { + objectMap["Address"] = dssii.Address + } + if dssii.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dssii.ServicePackageActivationID + } + if dssii.HostProcessID != nil { + objectMap["HostProcessId"] = dssii.HostProcessID + } + if dssii.ServiceKind != "" { + objectMap["ServiceKind"] = dssii.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return &dssii, true +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dssii, true +} + +// DeployServicePackageToNodeDescription defines description for downloading packages associated with a +// service manifest to image cache on a Service Fabric node. +type DeployServicePackageToNodeDescription struct { + // ServiceManifestName - The name of service manifest whose packages need to be downloaded. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - The version of the application type as defined in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // PackageSharingPolicy - List of package sharing policy information. + PackageSharingPolicy *[]PackageSharingPolicyInfo `json:"PackageSharingPolicy,omitempty"` +} + +// DiagnosticsDescription describes the diagnostics options available +type DiagnosticsDescription struct { + // Sinks - List of supported sinks that can be referenced. + Sinks *[]BasicDiagnosticsSinkProperties `json:"sinks,omitempty"` + // Enabled - Status of whether or not sinks are enabled. + Enabled *bool `json:"enabled,omitempty"` + // DefaultSinkRefs - The sinks to be used if diagnostics is enabled. Sink choices can be overridden at the service and code package level. + DefaultSinkRefs *[]string `json:"defaultSinkRefs,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for DiagnosticsDescription struct. +func (dd *DiagnosticsDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "sinks": + if v != nil { + sinks, err := unmarshalBasicDiagnosticsSinkPropertiesArray(*v) + if err != nil { + return err + } + dd.Sinks = &sinks + } + case "enabled": + if v != nil { + var enabled bool + err = json.Unmarshal(*v, &enabled) + if err != nil { + return err + } + dd.Enabled = &enabled + } + case "defaultSinkRefs": + if v != nil { + var defaultSinkRefs []string + err = json.Unmarshal(*v, &defaultSinkRefs) + if err != nil { + return err + } + dd.DefaultSinkRefs = &defaultSinkRefs + } + } + } + + return nil +} + +// DiagnosticsRef reference to sinks in DiagnosticsDescription. +type DiagnosticsRef struct { + // Enabled - Status of whether or not sinks are enabled. + Enabled *bool `json:"enabled,omitempty"` + // SinkRefs - List of sinks to be used if enabled. References the list of sinks in DiagnosticsDescription. + SinkRefs *[]string `json:"sinkRefs,omitempty"` +} + +// BasicDiagnosticsSinkProperties properties of a DiagnosticsSink. +type BasicDiagnosticsSinkProperties interface { + AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) +} + +// DiagnosticsSinkProperties properties of a DiagnosticsSink. +type DiagnosticsSinkProperties struct { + // Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription + Name *string `json:"name,omitempty"` + // Description - A description of the sink. + Description *string `json:"description,omitempty"` + // Kind - Possible values include: 'KindDiagnosticsSinkProperties' + Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"` +} + +func unmarshalBasicDiagnosticsSinkProperties(body []byte) (BasicDiagnosticsSinkProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + default: + var dsp DiagnosticsSinkProperties + err := json.Unmarshal(body, &dsp) + return dsp, err + } +} +func unmarshalBasicDiagnosticsSinkPropertiesArray(body []byte) ([]BasicDiagnosticsSinkProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dspArray := make([]BasicDiagnosticsSinkProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsp, err := unmarshalBasicDiagnosticsSinkProperties(*rawMessage) + if err != nil { + return nil, err + } + dspArray[index] = dsp + } + return dspArray, nil +} + +// MarshalJSON is the custom marshaler for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) MarshalJSON() ([]byte, error) { + dsp.Kind = KindDiagnosticsSinkProperties + objectMap := make(map[string]interface{}) + if dsp.Name != nil { + objectMap["name"] = dsp.Name + } + if dsp.Description != nil { + objectMap["description"] = dsp.Description + } + if dsp.Kind != "" { + objectMap["kind"] = dsp.Kind + } + return json.Marshal(objectMap) +} + +// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) { + return &dsp, true +} + +// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) { + return &dsp, true +} + +// DoublePropertyValue describes a Service Fabric property value of type Double. +type DoublePropertyValue struct { + // Data - The data of the property value. + Data *float64 `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DoublePropertyValue. +func (dpv DoublePropertyValue) MarshalJSON() ([]byte, error) { + dpv.Kind = KindDouble + objectMap := make(map[string]interface{}) + if dpv.Data != nil { + objectMap["Data"] = dpv.Data + } + if dpv.Kind != "" { + objectMap["Kind"] = dpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return &dpv, true +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &dpv, true +} + +// EnableBackupDescription specifies the parameters needed to enable periodic backup. +type EnableBackupDescription struct { + // BackupPolicyName - Name of the backup policy to be used for enabling periodic backups. + BackupPolicyName *string `json:"BackupPolicyName,omitempty"` +} + +// EndpointProperties describes a container endpoint. +type EndpointProperties struct { + // Name - The name of the endpoint. + Name *string `json:"name,omitempty"` + // Port - Port used by the container. + Port *int32 `json:"port,omitempty"` +} + +// EnsureAvailabilitySafetyCheck safety check that waits to ensure the availability of the partition. It +// waits until there are replicas available such that bringing down this replica will not cause +// availability loss for the partition. +type EnsureAvailabilitySafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) MarshalJSON() ([]byte, error) { + easc.Kind = KindEnsureAvailability + objectMap := make(map[string]interface{}) + if easc.PartitionID != nil { + objectMap["PartitionId"] = easc.PartitionID + } + if easc.Kind != "" { + objectMap["Kind"] = easc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &easc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return &easc, true +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &easc, true +} + +// EnsurePartitionQurumSafetyCheck safety check that ensures that a quorum of replicas are not lost for a +// partition. +type EnsurePartitionQurumSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) MarshalJSON() ([]byte, error) { + epqsc.Kind = KindEnsurePartitionQuorum + objectMap := make(map[string]interface{}) + if epqsc.PartitionID != nil { + objectMap["PartitionId"] = epqsc.PartitionID + } + if epqsc.Kind != "" { + objectMap["Kind"] = epqsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &epqsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return &epqsc, true +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &epqsc, true +} + +// EntityHealth health information common to all entities in the cluster. It contains the aggregated health +// state, health events and unhealthy evaluation. +type EntityHealth struct { + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// EntityHealthState a base type for the health state of various entities in the cluster. It contains the +// aggregated health state. +type EntityHealthState struct { + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// EntityHealthStateChunk a base type for the health state chunk of various entities in the cluster. It +// contains the aggregated health state. +type EntityHealthStateChunk struct { + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// EntityHealthStateChunkList a base type for the list of health state chunks found in the cluster. It +// contains the total number of health states that match the input filters. +type EntityHealthStateChunkList struct { + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// EntityKindHealthStateCount represents health state count for entities of the specified entity kind. +type EntityKindHealthStateCount struct { + // EntityKind - The entity kind for which health states are evaluated. Possible values include: 'EntityKindInvalid', 'EntityKindNode', 'EntityKindPartition', 'EntityKindService', 'EntityKindApplication', 'EntityKindReplica', 'EntityKindDeployedApplication', 'EntityKindDeployedServicePackage', 'EntityKindCluster' + EntityKind EntityKind `json:"EntityKind,omitempty"` + // HealthStateCount - The health state count for the entities of the specified kind. + HealthStateCount *HealthStateCount `json:"HealthStateCount,omitempty"` +} + +// EnvironmentVariable describes an environment variable for the container. +type EnvironmentVariable struct { + // Name - The name of the environment variable. + Name *string `json:"name,omitempty"` + // Value - The value of the environment variable. + Value *string `json:"value,omitempty"` +} + +// Epoch an Epoch is a configuration number for the partition as a whole. When the configuration of the +// replica set changes, for example when the Primary replica changes, the operations that are replicated +// from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary +// replica. +type Epoch struct { + // ConfigurationVersion - The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes. + ConfigurationVersion *string `json:"ConfigurationVersion,omitempty"` + // DataLossVersion - The current data loss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. + DataLossVersion *string `json:"DataLossVersion,omitempty"` +} + +// EventHealthEvaluation represents health evaluation of a HealthEvent that was reported on the entity. +// The health evaluation is returned when evaluating health of an entity results in Error or Warning. +type EventHealthEvaluation struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. The field is specified in the health policy used to evaluate the entity. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // UnhealthyEvent - Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager. + UnhealthyEvent *HealthEvent `json:"UnhealthyEvent,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EventHealthEvaluation. +func (ehe EventHealthEvaluation) MarshalJSON() ([]byte, error) { + ehe.Kind = KindEvent + objectMap := make(map[string]interface{}) + if ehe.ConsiderWarningAsError != nil { + objectMap["ConsiderWarningAsError"] = ehe.ConsiderWarningAsError + } + if ehe.UnhealthyEvent != nil { + objectMap["UnhealthyEvent"] = ehe.UnhealthyEvent + } + if ehe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ehe.AggregatedHealthState + } + if ehe.Description != nil { + objectMap["Description"] = ehe.Description + } + if ehe.Kind != "" { + objectMap["Kind"] = ehe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return &ehe, true +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ehe, true +} + +// ExecutingFaultsChaosEvent describes a Chaos event that gets generated when Chaos has decided on the +// faults for an iteration. This Chaos event contains the details of the faults as a list of strings. +type ExecutingFaultsChaosEvent struct { + // Faults - List of string description of the faults that Chaos decided to execute in an iteration. + Faults *[]string `json:"Faults,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) MarshalJSON() ([]byte, error) { + efce.Kind = KindExecutingFaults + objectMap := make(map[string]interface{}) + if efce.Faults != nil { + objectMap["Faults"] = efce.Faults + } + if efce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = efce.TimeStampUtc + } + if efce.Kind != "" { + objectMap["Kind"] = efce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return &efce, true +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &efce, true +} + +// ExternalStoreProvisionApplicationTypeDescription describes the operation to register or provision an +// application type using an application package from an external store instead of a package uploaded to +// the Service Fabric image store. +type ExternalStoreProvisionApplicationTypeDescription struct { + // ApplicationPackageDownloadURI - The path to the '.sfpkg' application package from where the application package can be downloaded using HTTP or HTTPS protocols. The application package can be stored in an external store that provides GET operation to download the file. Supported protocols are HTTP and HTTPS, and the path must allow READ access. + ApplicationPackageDownloadURI *string `json:"ApplicationPackageDownloadUri,omitempty"` + // ApplicationTypeName - The application type name represents the name of the application type found in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - The application type version represents the version of the application type found in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) { + espatd.Kind = KindExternalStore + objectMap := make(map[string]interface{}) + if espatd.ApplicationPackageDownloadURI != nil { + objectMap["ApplicationPackageDownloadUri"] = espatd.ApplicationPackageDownloadURI + } + if espatd.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = espatd.ApplicationTypeName + } + if espatd.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = espatd.ApplicationTypeVersion + } + if espatd.Async != nil { + objectMap["Async"] = espatd.Async + } + if espatd.Kind != "" { + objectMap["Kind"] = espatd.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return &espatd, true +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return nil, false +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &espatd, true +} + +// FabricCodeVersionInfo information about a Service Fabric code version. +type FabricCodeVersionInfo struct { + // CodeVersion - The product version of Service Fabric. + CodeVersion *string `json:"CodeVersion,omitempty"` +} + +// FabricConfigVersionInfo information about a Service Fabric config version. +type FabricConfigVersionInfo struct { + // ConfigVersion - The config version of Service Fabric. + ConfigVersion *string `json:"ConfigVersion,omitempty"` +} + +// FabricError the REST API operations for Service Fabric return standard HTTP status codes. This type +// defines the additional information returned from the Service Fabric API operations that are not +// successful. +type FabricError struct { + // Error - Error object containing error code and error message. + Error *FabricErrorError `json:"Error,omitempty"` +} + +// FabricErrorError error object containing error code and error message. +type FabricErrorError struct { + // Code - Defines the fabric error codes that be returned as part of the error object in response to Service Fabric API operations that are not successful. Following are the error code values that can be returned for a specific HTTP status code. + // - Possible values of the error code for HTTP status code 400 (Bad Request) + // - "FABRIC_E_INVALID_PARTITION_KEY" + // - "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR" + // - "FABRIC_E_INVALID_ADDRESS" + // - "FABRIC_E_APPLICATION_NOT_UPGRADING" + // - "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR" + // - "FABRIC_E_FABRIC_NOT_UPGRADING" + // - "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR" + // - "FABRIC_E_INVALID_CONFIGURATION" + // - "FABRIC_E_INVALID_NAME_URI" + // - "FABRIC_E_PATH_TOO_LONG" + // - "FABRIC_E_KEY_TOO_LARGE" + // - "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED" + // - "FABRIC_E_INVALID_ATOMIC_GROUP" + // - "FABRIC_E_VALUE_EMPTY" + // - "FABRIC_E_BACKUP_IS_ENABLED" + // - "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH" + // - "FABRIC_E_INVALID_FOR_STATELESS_SERVICES" + // - "FABRIC_E_INVALID_SERVICE_SCALING_POLICY" + // - "E_INVALIDARG" + // - Possible values of the error code for HTTP status code 404 (Not Found) + // - "FABRIC_E_NODE_NOT_FOUND" + // - "FABRIC_E_APPLICATION_TYPE_NOT_FOUND" + // - "FABRIC_E_APPLICATION_NOT_FOUND" + // - "FABRIC_E_SERVICE_TYPE_NOT_FOUND" + // - "FABRIC_E_SERVICE_DOES_NOT_EXIST" + // - "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND" + // - "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND" + // - "FABRIC_E_PARTITION_NOT_FOUND" + // - "FABRIC_E_REPLICA_DOES_NOT_EXIST" + // - "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST" + // - "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND" + // - "FABRIC_E_DIRECTORY_NOT_FOUND" + // - "FABRIC_E_FABRIC_VERSION_NOT_FOUND" + // - "FABRIC_E_FILE_NOT_FOUND" + // - "FABRIC_E_NAME_DOES_NOT_EXIST" + // - "FABRIC_E_PROPERTY_DOES_NOT_EXIST" + // - "FABRIC_E_ENUMERATION_COMPLETED" + // - "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND" + // - "FABRIC_E_KEY_NOT_FOUND" + // - "FABRIC_E_HEALTH_ENTITY_NOT_FOUND" + // - "FABRIC_E_BACKUP_NOT_ENABLED" + // - "FABRIC_E_BACKUP_POLICY_NOT_EXISTING" + // - "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING" + // - Possible values of the error code for HTTP status code 409 (Conflict) + // - "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION" + // - "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS" + // - "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS" + // - "FABRIC_E_SERVICE_ALREADY_EXISTS" + // - "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_TYPE_IN_USE" + // - "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION" + // - "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS" + // - "FABRIC_E_FABRIC_VERSION_IN_USE" + // - "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS" + // - "FABRIC_E_NAME_ALREADY_EXISTS" + // - "FABRIC_E_NAME_NOT_EMPTY" + // - "FABRIC_E_PROPERTY_CHECK_FAILED" + // - "FABRIC_E_SERVICE_METADATA_MISMATCH" + // - "FABRIC_E_SERVICE_TYPE_MISMATCH" + // - "FABRIC_E_HEALTH_STALE_REPORT" + // - "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED" + // - "FABRIC_E_NODE_HAS_NOT_STOPPED_YET" + // - "FABRIC_E_INSTANCE_ID_MISMATCH" + // - "FABRIC_E_BACKUP_IN_PROGRESS" + // - "FABRIC_E_RESTORE_IN_PROGRESS" + // - "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING" + // - Possible values of the error code for HTTP status code 413 (Request Entity Too Large) + // - "FABRIC_E_VALUE_TOO_LARGE" + // - Possible values of the error code for HTTP status code 500 (Internal Server Error) + // - "FABRIC_E_NODE_IS_UP" + // - "E_FAIL" + // - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS" + // - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND" + // - "FABRIC_E_VOLUME_ALREADY_EXISTS" + // - "FABRIC_E_VOLUME_NOT_FOUND" + // - "SerializationError" + // - Possible values of the error code for HTTP status code 503 (Service Unavailable) + // - "FABRIC_E_NO_WRITE_QUORUM" + // - "FABRIC_E_NOT_PRIMARY" + // - "FABRIC_E_NOT_READY" + // - "FABRIC_E_RECONFIGURATION_PENDING" + // - "FABRIC_E_SERVICE_OFFLINE" + // - "E_ABORT" + // - "FABRIC_E_VALUE_TOO_LARGE" + // - Possible values of the error code for HTTP status code 504 (Gateway Timeout) + // - "FABRIC_E_COMMUNICATION_ERROR" + // - "FABRIC_E_OPERATION_NOT_COMPLETE" + // - "FABRIC_E_TIMEOUT". Possible values include: 'FABRICEINVALIDPARTITIONKEY', 'FABRICEIMAGEBUILDERVALIDATIONERROR', 'FABRICEINVALIDADDRESS', 'FABRICEAPPLICATIONNOTUPGRADING', 'FABRICEAPPLICATIONUPGRADEVALIDATIONERROR', 'FABRICEFABRICNOTUPGRADING', 'FABRICEFABRICUPGRADEVALIDATIONERROR', 'FABRICEINVALIDCONFIGURATION', 'FABRICEINVALIDNAMEURI', 'FABRICEPATHTOOLONG', 'FABRICEKEYTOOLARGE', 'FABRICESERVICEAFFINITYCHAINNOTSUPPORTED', 'FABRICEINVALIDATOMICGROUP', 'FABRICEVALUEEMPTY', 'FABRICENODENOTFOUND', 'FABRICEAPPLICATIONTYPENOTFOUND', 'FABRICEAPPLICATIONNOTFOUND', 'FABRICESERVICETYPENOTFOUND', 'FABRICESERVICEDOESNOTEXIST', 'FABRICESERVICETYPETEMPLATENOTFOUND', 'FABRICECONFIGURATIONSECTIONNOTFOUND', 'FABRICEPARTITIONNOTFOUND', 'FABRICEREPLICADOESNOTEXIST', 'FABRICESERVICEGROUPDOESNOTEXIST', 'FABRICECONFIGURATIONPARAMETERNOTFOUND', 'FABRICEDIRECTORYNOTFOUND', 'FABRICEFABRICVERSIONNOTFOUND', 'FABRICEFILENOTFOUND', 'FABRICENAMEDOESNOTEXIST', 'FABRICEPROPERTYDOESNOTEXIST', 'FABRICEENUMERATIONCOMPLETED', 'FABRICESERVICEMANIFESTNOTFOUND', 'FABRICEKEYNOTFOUND', 'FABRICEHEALTHENTITYNOTFOUND', 'FABRICEAPPLICATIONTYPEALREADYEXISTS', 'FABRICEAPPLICATIONALREADYEXISTS', 'FABRICEAPPLICATIONALREADYINTARGETVERSION', 'FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS', 'FABRICEAPPLICATIONUPGRADEINPROGRESS', 'FABRICESERVICEALREADYEXISTS', 'FABRICESERVICEGROUPALREADYEXISTS', 'FABRICEAPPLICATIONTYPEINUSE', 'FABRICEFABRICALREADYINTARGETVERSION', 'FABRICEFABRICVERSIONALREADYEXISTS', 'FABRICEFABRICVERSIONINUSE', 'FABRICEFABRICUPGRADEINPROGRESS', 'FABRICENAMEALREADYEXISTS', 'FABRICENAMENOTEMPTY', 'FABRICEPROPERTYCHECKFAILED', 'FABRICESERVICEMETADATAMISMATCH', 'FABRICESERVICETYPEMISMATCH', 'FABRICEHEALTHSTALEREPORT', 'FABRICESEQUENCENUMBERCHECKFAILED', 'FABRICENODEHASNOTSTOPPEDYET', 'FABRICEINSTANCEIDMISMATCH', 'FABRICEVALUETOOLARGE', 'FABRICENOWRITEQUORUM', 'FABRICENOTPRIMARY', 'FABRICENOTREADY', 'FABRICERECONFIGURATIONPENDING', 'FABRICESERVICEOFFLINE', 'EABORT', 'FABRICECOMMUNICATIONERROR', 'FABRICEOPERATIONNOTCOMPLETE', 'FABRICETIMEOUT', 'FABRICENODEISUP', 'EFAIL', 'FABRICEBACKUPISENABLED', 'FABRICERESTORESOURCETARGETPARTITIONMISMATCH', 'FABRICEINVALIDFORSTATELESSSERVICES', 'FABRICEBACKUPNOTENABLED', 'FABRICEBACKUPPOLICYNOTEXISTING', 'FABRICEFAULTANALYSISSERVICENOTEXISTING', 'FABRICEBACKUPINPROGRESS', 'FABRICERESTOREINPROGRESS', 'FABRICEBACKUPPOLICYALREADYEXISTING', 'FABRICEINVALIDSERVICESCALINGPOLICY', 'EINVALIDARG', 'FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS', 'FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND', 'FABRICEVOLUMEALREADYEXISTS', 'FABRICEVOLUMENOTFOUND', 'SerializationError' + Code FabricErrorCodes `json:"Code,omitempty"` + // Message - Error message. + Message *string `json:"Message,omitempty"` +} + +// BasicFabricEvent represents the base for all Fabric Events. +type BasicFabricEvent interface { + AsApplicationEvent() (*ApplicationEvent, bool) + AsBasicApplicationEvent() (BasicApplicationEvent, bool) + AsClusterEvent() (*ClusterEvent, bool) + AsBasicClusterEvent() (BasicClusterEvent, bool) + AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) + AsNodeEvent() (*NodeEvent, bool) + AsBasicNodeEvent() (BasicNodeEvent, bool) + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) + AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) + AsPartitionEvent() (*PartitionEvent, bool) + AsBasicPartitionEvent() (BasicPartitionEvent, bool) + AsReplicaEvent() (*ReplicaEvent, bool) + AsBasicReplicaEvent() (BasicReplicaEvent, bool) + AsServiceEvent() (*ServiceEvent, bool) + AsBasicServiceEvent() (BasicServiceEvent, bool) + AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) + AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) + AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) + AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) + AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) + AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) + AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) + AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) + AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) + AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) + AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) + AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) + AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) + AsNodeAbortedEvent() (*NodeAbortedEvent, bool) + AsNodeAbortingEvent() (*NodeAbortingEvent, bool) + AsNodeAddedEvent() (*NodeAddedEvent, bool) + AsNodeCloseEvent() (*NodeCloseEvent, bool) + AsNodeClosingEvent() (*NodeClosingEvent, bool) + AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) + AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) + AsNodeDownEvent() (*NodeDownEvent, bool) + AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) + AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) + AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) + AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) + AsNodeOpeningEvent() (*NodeOpeningEvent, bool) + AsNodeRemovedEvent() (*NodeRemovedEvent, bool) + AsNodeUpEvent() (*NodeUpEvent, bool) + AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) + AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) + AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) + AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) + AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) + AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) + AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) + AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) + AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) + AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) + AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) + AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) + AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) + AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) + AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) + AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) + AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) + AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) + AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) + AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) + AsChaosStartedEvent() (*ChaosStartedEvent, bool) + AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) + AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) + AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) + AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) + AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) + AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) + AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) + AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) + AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) + AsFabricEvent() (*FabricEvent, bool) +} + +// FabricEvent represents the base for all Fabric Events. +type FabricEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicFabricEvent(body []byte) (BasicFabricEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplicationEvent): + var ae ApplicationEvent + err := json.Unmarshal(body, &ae) + return ae, err + case string(KindClusterEvent): + var ce ClusterEvent + err := json.Unmarshal(body, &ce) + return ce, err + case string(KindContainerInstanceEvent): + var cie ContainerInstanceEvent + err := json.Unmarshal(body, &cie) + return cie, err + case string(KindNodeEvent): + var ne NodeEvent + err := json.Unmarshal(body, &ne) + return ne, err + case string(KindPartitionAnalysisEvent): + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + case string(KindPartitionEvent): + var peVar PartitionEvent + err := json.Unmarshal(body, &peVar) + return peVar, err + case string(KindReplicaEvent): + var re ReplicaEvent + err := json.Unmarshal(body, &re) + return re, err + case string(KindServiceEvent): + var se ServiceEvent + err := json.Unmarshal(body, &se) + return se, err + case string(KindApplicationCreated): + var ace ApplicationCreatedEvent + err := json.Unmarshal(body, &ace) + return ace, err + case string(KindApplicationDeleted): + var ade ApplicationDeletedEvent + err := json.Unmarshal(body, &ade) + return ade, err + case string(KindApplicationHealthReportCreated): + var ahrce ApplicationHealthReportCreatedEvent + err := json.Unmarshal(body, &ahrce) + return ahrce, err + case string(KindApplicationHealthReportExpired): + var ahree ApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &ahree) + return ahree, err + case string(KindApplicationUpgradeComplete): + var auce ApplicationUpgradeCompleteEvent + err := json.Unmarshal(body, &auce) + return auce, err + case string(KindApplicationUpgradeDomainComplete): + var audce ApplicationUpgradeDomainCompleteEvent + err := json.Unmarshal(body, &audce) + return audce, err + case string(KindApplicationUpgradeRollbackComplete): + var aurce ApplicationUpgradeRollbackCompleteEvent + err := json.Unmarshal(body, &aurce) + return aurce, err + case string(KindApplicationUpgradeRollbackStart): + var aurse ApplicationUpgradeRollbackStartEvent + err := json.Unmarshal(body, &aurse) + return aurse, err + case string(KindApplicationUpgradeStart): + var ause ApplicationUpgradeStartEvent + err := json.Unmarshal(body, &ause) + return ause, err + case string(KindDeployedApplicationHealthReportCreated): + var dahrce DeployedApplicationHealthReportCreatedEvent + err := json.Unmarshal(body, &dahrce) + return dahrce, err + case string(KindDeployedApplicationHealthReportExpired): + var dahree DeployedApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &dahree) + return dahree, err + case string(KindProcessDeactivated): + var pde ProcessDeactivatedEvent + err := json.Unmarshal(body, &pde) + return pde, err + case string(KindContainerDeactivated): + var cde ContainerDeactivatedEvent + err := json.Unmarshal(body, &cde) + return cde, err + case string(KindNodeAborted): + var nae NodeAbortedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAborting): + var nae NodeAbortingEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAdded): + var nae NodeAddedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeClose): + var nce NodeCloseEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeClosing): + var nce NodeClosingEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeDeactivateComplete): + var ndce NodeDeactivateCompleteEvent + err := json.Unmarshal(body, &ndce) + return ndce, err + case string(KindNodeDeactivateStart): + var ndse NodeDeactivateStartEvent + err := json.Unmarshal(body, &ndse) + return ndse, err + case string(KindNodeDown): + var nde NodeDownEvent + err := json.Unmarshal(body, &nde) + return nde, err + case string(KindNodeHealthReportCreated): + var nhrce NodeHealthReportCreatedEvent + err := json.Unmarshal(body, &nhrce) + return nhrce, err + case string(KindNodeHealthReportExpired): + var nhree NodeHealthReportExpiredEvent + err := json.Unmarshal(body, &nhree) + return nhree, err + case string(KindNodeOpenedSuccess): + var nose NodeOpenedSuccessEvent + err := json.Unmarshal(body, &nose) + return nose, err + case string(KindNodeOpenFailed): + var nofe NodeOpenFailedEvent + err := json.Unmarshal(body, &nofe) + return nofe, err + case string(KindNodeOpening): + var noe NodeOpeningEvent + err := json.Unmarshal(body, &noe) + return noe, err + case string(KindNodeRemoved): + var nre NodeRemovedEvent + err := json.Unmarshal(body, &nre) + return nre, err + case string(KindNodeUp): + var nue NodeUpEvent + err := json.Unmarshal(body, &nue) + return nue, err + case string(KindPartitionHealthReportCreated): + var phrce PartitionHealthReportCreatedEvent + err := json.Unmarshal(body, &phrce) + return phrce, err + case string(KindPartitionHealthReportExpired): + var phree PartitionHealthReportExpiredEvent + err := json.Unmarshal(body, &phree) + return phree, err + case string(KindPartitionReconfigurationCompleted): + var prce PartitionReconfigurationCompletedEvent + err := json.Unmarshal(body, &prce) + return prce, err + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + case string(KindServiceCreated): + var sce ServiceCreatedEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindServiceDeleted): + var sde ServiceDeletedEvent + err := json.Unmarshal(body, &sde) + return sde, err + case string(KindServiceHealthReportCreated): + var shrce ServiceHealthReportCreatedEvent + err := json.Unmarshal(body, &shrce) + return shrce, err + case string(KindServiceHealthReportExpired): + var shree ServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &shree) + return shree, err + case string(KindDeployedServiceHealthReportCreated): + var dshrce DeployedServiceHealthReportCreatedEvent + err := json.Unmarshal(body, &dshrce) + return dshrce, err + case string(KindDeployedServiceHealthReportExpired): + var dshree DeployedServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &dshree) + return dshree, err + case string(KindStatefulReplicaHealthReportCreated): + var srhrce StatefulReplicaHealthReportCreatedEvent + err := json.Unmarshal(body, &srhrce) + return srhrce, err + case string(KindStatefulReplicaHealthReportExpired): + var srhree StatefulReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindStatelessReplicaHealthReportCreated): + var srhrce StatelessReplicaHealthReportCreatedEvent + err := json.Unmarshal(body, &srhrce) + return srhrce, err + case string(KindStatelessReplicaHealthReportExpired): + var srhree StatelessReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindClusterHealthReportCreated): + var chrce ClusterHealthReportCreatedEvent + err := json.Unmarshal(body, &chrce) + return chrce, err + case string(KindClusterHealthReportExpired): + var chree ClusterHealthReportExpiredEvent + err := json.Unmarshal(body, &chree) + return chree, err + case string(KindClusterUpgradeComplete): + var cuce ClusterUpgradeCompleteEvent + err := json.Unmarshal(body, &cuce) + return cuce, err + case string(KindClusterUpgradeDomainComplete): + var cudce ClusterUpgradeDomainCompleteEvent + err := json.Unmarshal(body, &cudce) + return cudce, err + case string(KindClusterUpgradeRollbackComplete): + var curce ClusterUpgradeRollbackCompleteEvent + err := json.Unmarshal(body, &curce) + return curce, err + case string(KindClusterUpgradeRollbackStart): + var curse ClusterUpgradeRollbackStartEvent + err := json.Unmarshal(body, &curse) + return curse, err + case string(KindClusterUpgradeStart): + var cuse ClusterUpgradeStartEvent + err := json.Unmarshal(body, &cuse) + return cuse, err + case string(KindChaosStopped): + var cse ChaosStoppedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosStarted): + var cse ChaosStartedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosRestartNodeFaultCompleted): + var crnfce ChaosRestartNodeFaultCompletedEvent + err := json.Unmarshal(body, &crnfce) + return crnfce, err + case string(KindChaosRestartCodePackageFaultScheduled): + var crcpfse ChaosRestartCodePackageFaultScheduledEvent + err := json.Unmarshal(body, &crcpfse) + return crcpfse, err + case string(KindChaosRestartCodePackageFaultCompleted): + var crcpfce ChaosRestartCodePackageFaultCompletedEvent + err := json.Unmarshal(body, &crcpfce) + return crcpfce, err + case string(KindChaosRemoveReplicaFaultScheduled): + var crrfse ChaosRemoveReplicaFaultScheduledEvent + err := json.Unmarshal(body, &crrfse) + return crrfse, err + case string(KindChaosRemoveReplicaFaultCompleted): + var crrfce ChaosRemoveReplicaFaultCompletedEvent + err := json.Unmarshal(body, &crrfce) + return crrfce, err + case string(KindChaosMoveSecondaryFaultScheduled): + var cmsfse ChaosMoveSecondaryFaultScheduledEvent + err := json.Unmarshal(body, &cmsfse) + return cmsfse, err + case string(KindChaosMovePrimaryFaultScheduled): + var cmpfse ChaosMovePrimaryFaultScheduledEvent + err := json.Unmarshal(body, &cmpfse) + return cmpfse, err + case string(KindChaosRestartReplicaFaultScheduled): + var crrfse ChaosRestartReplicaFaultScheduledEvent + err := json.Unmarshal(body, &crrfse) + return crrfse, err + case string(KindChaosRestartNodeFaultScheduled): + var crnfse ChaosRestartNodeFaultScheduledEvent + err := json.Unmarshal(body, &crnfse) + return crnfse, err + default: + var fe FabricEvent + err := json.Unmarshal(body, &fe) + return fe, err + } +} +func unmarshalBasicFabricEventArray(body []byte) ([]BasicFabricEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + feArray := make([]BasicFabricEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + fe, err := unmarshalBasicFabricEvent(*rawMessage) + if err != nil { + return nil, err + } + feArray[index] = fe + } + return feArray, nil +} + +// MarshalJSON is the custom marshaler for FabricEvent. +func (fe FabricEvent) MarshalJSON() ([]byte, error) { + fe.Kind = KindFabricEvent + objectMap := make(map[string]interface{}) + if fe.EventInstanceID != nil { + objectMap["EventInstanceId"] = fe.EventInstanceID + } + if fe.TimeStamp != nil { + objectMap["TimeStamp"] = fe.TimeStamp + } + if fe.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = fe.HasCorrelatedEvents + } + if fe.Kind != "" { + objectMap["Kind"] = fe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsFabricEvent() (*FabricEvent, bool) { + return &fe, true +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &fe, true +} + +// FailedPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch failing. Contains +// information about the specific batch failure. +type FailedPropertyBatchInfo struct { + // ErrorMessage - The error message of the failed operation. Describes the exception thrown due to the first unsuccessful operation in the property batch. + ErrorMessage *string `json:"ErrorMessage,omitempty"` + // OperationIndex - The index of the unsuccessful operation in the property batch. + OperationIndex *int32 `json:"OperationIndex,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) MarshalJSON() ([]byte, error) { + fpbi.Kind = KindFailed + objectMap := make(map[string]interface{}) + if fpbi.ErrorMessage != nil { + objectMap["ErrorMessage"] = fpbi.ErrorMessage + } + if fpbi.OperationIndex != nil { + objectMap["OperationIndex"] = fpbi.OperationIndex + } + if fpbi.Kind != "" { + objectMap["Kind"] = fpbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return nil, false +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return &fpbi, true +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return nil, false +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &fpbi, true +} + +// FailedUpgradeDomainProgressObject the detailed upgrade progress for nodes in the current upgrade domain +// at the point of failure. +type FailedUpgradeDomainProgressObject struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// FailureUpgradeDomainProgressInfo information about the upgrade domain progress at the time of upgrade +// failure. +type FailureUpgradeDomainProgressInfo struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// FileInfo information about a image store file. +type FileInfo struct { + // FileSize - The size of file in bytes. + FileSize *string `json:"FileSize,omitempty"` + // FileVersion - Information about the version of image store file. + FileVersion *FileVersion `json:"FileVersion,omitempty"` + // ModifiedDate - The date and time when the image store file was last modified. + ModifiedDate *date.Time `json:"ModifiedDate,omitempty"` + // StoreRelativePath - The file path relative to the image store root path. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` +} + +// FileShareBackupStorageDescription describes the parameters for file share storage used for storing or +// enumerating backups. +type FileShareBackupStorageDescription struct { + // Path - UNC path of the file share where to store or enumerate backups from. + Path *string `json:"Path,omitempty"` + // PrimaryUserName - Primary user name to access the file share. + PrimaryUserName *string `json:"PrimaryUserName,omitempty"` + // PrimaryPassword - Primary password to access the share location. + PrimaryPassword *string `json:"PrimaryPassword,omitempty"` + // SecondaryUserName - Secondary user name to access the file share. + SecondaryUserName *string `json:"SecondaryUserName,omitempty"` + // SecondaryPassword - Secondary password to access the share location + SecondaryPassword *string `json:"SecondaryPassword,omitempty"` + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) MarshalJSON() ([]byte, error) { + fsbsd.StorageKind = StorageKindFileShare + objectMap := make(map[string]interface{}) + if fsbsd.Path != nil { + objectMap["Path"] = fsbsd.Path + } + if fsbsd.PrimaryUserName != nil { + objectMap["PrimaryUserName"] = fsbsd.PrimaryUserName + } + if fsbsd.PrimaryPassword != nil { + objectMap["PrimaryPassword"] = fsbsd.PrimaryPassword + } + if fsbsd.SecondaryUserName != nil { + objectMap["SecondaryUserName"] = fsbsd.SecondaryUserName + } + if fsbsd.SecondaryPassword != nil { + objectMap["SecondaryPassword"] = fsbsd.SecondaryPassword + } + if fsbsd.FriendlyName != nil { + objectMap["FriendlyName"] = fsbsd.FriendlyName + } + if fsbsd.StorageKind != "" { + objectMap["StorageKind"] = fsbsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return nil, false +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return &fsbsd, true +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return nil, false +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &fsbsd, true +} + +// FileVersion information about the version of image store file. +type FileVersion struct { + // VersionNumber - The current image store version number for the file is used in image store for checking whether it need to be updated. + VersionNumber *string `json:"VersionNumber,omitempty"` + // EpochDataLossNumber - The epoch data loss number of image store replica when this file entry was updated or created. + EpochDataLossNumber *string `json:"EpochDataLossNumber,omitempty"` + // EpochConfigurationNumber - The epoch configuration version number of the image store replica when this file entry was created or updated. + EpochConfigurationNumber *string `json:"EpochConfigurationNumber,omitempty"` +} + +// FolderInfo information about a image store folder. It includes how many files this folder contains and +// its image store relative path. +type FolderInfo struct { + // StoreRelativePath - The remote location within image store. This path is relative to the image store root. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` + // FileCount - The number of files from within the image store folder. + FileCount *string `json:"FileCount,omitempty"` +} + +// FrequencyBasedBackupScheduleDescription describes the frequency based backup schedule. +type FrequencyBasedBackupScheduleDescription struct { + // Interval - Defines the interval with which backups are periodically taken. It should be specified in ISO8601 format. Timespan in seconds is not supported and will be ignored while creating the policy. + Interval *string `json:"Interval,omitempty"` + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) { + fbbsd.ScheduleKind = ScheduleKindFrequencyBased + objectMap := make(map[string]interface{}) + if fbbsd.Interval != nil { + objectMap["Interval"] = fbbsd.Interval + } + if fbbsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = fbbsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return &fbbsd, true +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return nil, false +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &fbbsd, true +} + +// GetBackupByStorageQueryDescription describes additional filters to be applied, while listing backups, +// and backup storage details from where to fetch the backups. +type GetBackupByStorageQueryDescription struct { + // StartDateTimeFilter - Specifies the start date time in ISO8601 from which to enumerate backups. If not specified, backups are enumerated from the beginning. + StartDateTimeFilter *date.Time `json:"StartDateTimeFilter,omitempty"` + // EndDateTimeFilter - Specifies the end date time in ISO8601 till which to enumerate backups. If not specified, backups are enumerated till the end. + EndDateTimeFilter *date.Time `json:"EndDateTimeFilter,omitempty"` + // Latest - If specified as true, gets the most recent backup (within the specified time range) for every partition under the specified backup entity. + Latest *bool `json:"Latest,omitempty"` + // Storage - Describes the parameters for the backup storage from where to enumerate backups. This is optional and by default backups are enumerated from the backup storage where this backup entity is currently being backed up (as specified in backup policy). This parameter is useful to be able to enumerate backups from another cluster where you may intend to restore. + Storage BasicBackupStorageDescription `json:"Storage,omitempty"` + // BackupEntity - Indicates the entity for which to enumerate backups. + BackupEntity BasicBackupEntity `json:"BackupEntity,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for GetBackupByStorageQueryDescription struct. +func (gbbsqd *GetBackupByStorageQueryDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "StartDateTimeFilter": + if v != nil { + var startDateTimeFilter date.Time + err = json.Unmarshal(*v, &startDateTimeFilter) + if err != nil { + return err + } + gbbsqd.StartDateTimeFilter = &startDateTimeFilter + } + case "EndDateTimeFilter": + if v != nil { + var endDateTimeFilter date.Time + err = json.Unmarshal(*v, &endDateTimeFilter) + if err != nil { + return err + } + gbbsqd.EndDateTimeFilter = &endDateTimeFilter + } + case "Latest": + if v != nil { + var latest bool + err = json.Unmarshal(*v, &latest) + if err != nil { + return err + } + gbbsqd.Latest = &latest + } + case "Storage": + if v != nil { + storage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + gbbsqd.Storage = storage + } + case "BackupEntity": + if v != nil { + backupEntity, err := unmarshalBasicBackupEntity(*v) + if err != nil { + return err + } + gbbsqd.BackupEntity = backupEntity + } + } + } + + return nil +} + +// GetPropertyBatchOperation represents a PropertyBatchOperation that gets the specified property if it +// exists. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type GetPropertyBatchOperation struct { + // IncludeValue - Whether or not to return the property value with the metadata. + // True if values should be returned with the metadata; False to return only property metadata. + IncludeValue *bool `json:"IncludeValue,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) MarshalJSON() ([]byte, error) { + gpbo.Kind = KindGet + objectMap := make(map[string]interface{}) + if gpbo.IncludeValue != nil { + objectMap["IncludeValue"] = gpbo.IncludeValue + } + if gpbo.PropertyName != nil { + objectMap["PropertyName"] = gpbo.PropertyName + } + if gpbo.Kind != "" { + objectMap["Kind"] = gpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return &gpbo, true +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &gpbo, true +} + +// GUIDPropertyValue describes a Service Fabric property value of type Guid. +type GUIDPropertyValue struct { + // Data - The data of the property value. + Data *uuid.UUID `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for GUIDPropertyValue. +func (gpv GUIDPropertyValue) MarshalJSON() ([]byte, error) { + gpv.Kind = KindGUID + objectMap := make(map[string]interface{}) + if gpv.Data != nil { + objectMap["Data"] = gpv.Data + } + if gpv.Kind != "" { + objectMap["Kind"] = gpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return &gpv, true +} + +// AsPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &gpv, true +} + +// BasicHealthEvaluation represents a health evaluation which describes the data and the algorithm used by health +// manager to evaluate the health of an entity. +type BasicHealthEvaluation interface { + AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) + AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) + AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) + AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) + AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) + AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) + AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) + AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) + AsEventHealthEvaluation() (*EventHealthEvaluation, bool) + AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) + AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) + AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) + AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) + AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) + AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) + AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) + AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) + AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) + AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) + AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) + AsHealthEvaluation() (*HealthEvaluation, bool) +} + +// HealthEvaluation represents a health evaluation which describes the data and the algorithm used by health +// manager to evaluate the health of an entity. +type HealthEvaluation struct { + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +func unmarshalBasicHealthEvaluation(body []byte) (BasicHealthEvaluation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplication): + var ahe ApplicationHealthEvaluation + err := json.Unmarshal(body, &ahe) + return ahe, err + case string(KindApplications): + var ahe ApplicationsHealthEvaluation + err := json.Unmarshal(body, &ahe) + return ahe, err + case string(KindApplicationTypeApplications): + var atahe ApplicationTypeApplicationsHealthEvaluation + err := json.Unmarshal(body, &atahe) + return atahe, err + case string(KindDeltaNodesCheck): + var dnche DeltaNodesCheckHealthEvaluation + err := json.Unmarshal(body, &dnche) + return dnche, err + case string(KindDeployedApplication): + var dahe DeployedApplicationHealthEvaluation + err := json.Unmarshal(body, &dahe) + return dahe, err + case string(KindDeployedApplications): + var dahe DeployedApplicationsHealthEvaluation + err := json.Unmarshal(body, &dahe) + return dahe, err + case string(KindDeployedServicePackage): + var dsphe DeployedServicePackageHealthEvaluation + err := json.Unmarshal(body, &dsphe) + return dsphe, err + case string(KindDeployedServicePackages): + var dsphe DeployedServicePackagesHealthEvaluation + err := json.Unmarshal(body, &dsphe) + return dsphe, err + case string(KindEvent): + var ehe EventHealthEvaluation + err := json.Unmarshal(body, &ehe) + return ehe, err + case string(KindNode): + var nhe NodeHealthEvaluation + err := json.Unmarshal(body, &nhe) + return nhe, err + case string(KindNodes): + var nhe NodesHealthEvaluation + err := json.Unmarshal(body, &nhe) + return nhe, err + case string(KindPartition): + var phe PartitionHealthEvaluation + err := json.Unmarshal(body, &phe) + return phe, err + case string(KindPartitions): + var phe PartitionsHealthEvaluation + err := json.Unmarshal(body, &phe) + return phe, err + case string(KindReplica): + var rhe ReplicaHealthEvaluation + err := json.Unmarshal(body, &rhe) + return rhe, err + case string(KindReplicas): + var rhe ReplicasHealthEvaluation + err := json.Unmarshal(body, &rhe) + return rhe, err + case string(KindService): + var she ServiceHealthEvaluation + err := json.Unmarshal(body, &she) + return she, err + case string(KindServices): + var she ServicesHealthEvaluation + err := json.Unmarshal(body, &she) + return she, err + case string(KindSystemApplication): + var sahe SystemApplicationHealthEvaluation + err := json.Unmarshal(body, &sahe) + return sahe, err + case string(KindUpgradeDomainDeltaNodesCheck): + var uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation + err := json.Unmarshal(body, &uddnche) + return uddnche, err + case string(KindUpgradeDomainNodes): + var udnhe UpgradeDomainNodesHealthEvaluation + err := json.Unmarshal(body, &udnhe) + return udnhe, err + default: + var he HealthEvaluation + err := json.Unmarshal(body, &he) + return he, err + } +} +func unmarshalBasicHealthEvaluationArray(body []byte) ([]BasicHealthEvaluation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + heArray := make([]BasicHealthEvaluation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + he, err := unmarshalBasicHealthEvaluation(*rawMessage) + if err != nil { + return nil, err + } + heArray[index] = he + } + return heArray, nil +} + +// MarshalJSON is the custom marshaler for HealthEvaluation. +func (he HealthEvaluation) MarshalJSON() ([]byte, error) { + he.Kind = KindHealthEvaluation + objectMap := make(map[string]interface{}) + if he.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = he.AggregatedHealthState + } + if he.Description != nil { + objectMap["Description"] = he.Description + } + if he.Kind != "" { + objectMap["Kind"] = he.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return &he, true +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &he, true +} + +// HealthEvaluationWrapper wrapper object for health evaluation. +type HealthEvaluationWrapper struct { + // HealthEvaluation - Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity. + HealthEvaluation BasicHealthEvaluation `json:"HealthEvaluation,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for HealthEvaluationWrapper struct. +func (hew *HealthEvaluationWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HealthEvaluation": + if v != nil { + healthEvaluation, err := unmarshalBasicHealthEvaluation(*v) + if err != nil { + return err + } + hew.HealthEvaluation = healthEvaluation + } + } + } + + return nil +} + +// HealthEvent represents health information reported on a health entity, such as cluster, application or +// node, with additional metadata added by the Health Manager. +type HealthEvent struct { + // IsExpired - Returns true if the health event is expired, otherwise false. + IsExpired *bool `json:"IsExpired,omitempty"` + // SourceUtcTimestamp - The date and time when the health report was sent by the source. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // LastModifiedUtcTimestamp - The date and time when the health report was last modified by the health store. + LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"` + // LastOkTransitionAt - If the current health state is 'Ok', this property returns the time at which the health report was first reported with 'Ok'. + // For periodic reporting, many reports with the same state may have been generated. + // This property returns the date and time when the first 'Ok' health report was received. + // If the current health state is 'Error' or 'Warning', returns the date and time at which the health state was last in 'Ok', before transitioning to a different state. + // If the health state was never 'Ok', the value will be zero date-time. + LastOkTransitionAt *date.Time `json:"LastOkTransitionAt,omitempty"` + // LastWarningTransitionAt - If the current health state is 'Warning', this property returns the time at which the health report was first reported with 'Warning'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Warning' health report was received. + // If the current health state is 'Ok' or 'Error', returns the date and time at which the health state was last in 'Warning', before transitioning to a different state. + // If the health state was never 'Warning', the value will be zero date-time. + LastWarningTransitionAt *date.Time `json:"LastWarningTransitionAt,omitempty"` + // LastErrorTransitionAt - If the current health state is 'Error', this property returns the time at which the health report was first reported with 'Error'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Error' health report was received. + // If the current health state is 'Ok' or 'Warning', returns the date and time at which the health state was last in 'Error', before transitioning to a different state. + // If the health state was never 'Error', the value will be zero date-time. + LastErrorTransitionAt *date.Time `json:"LastErrorTransitionAt,omitempty"` + // SourceID - The source name that identifies the client/watchdog/system component that generated the health information. + SourceID *string `json:"SourceId,omitempty"` + // Property - The property of the health information. An entity can have health reports for different properties. + // The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report. + // For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node, + // so it can report "AvailableDisk" property on that node. + // The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node. + // In the health store, these reports are treated as separate health events for the specified node. + // Together with the SourceId, the property uniquely identifies the health information. + Property *string `json:"Property,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration. + // When clients report periodically, they should send reports with higher frequency than time to live. + // If clients report on transition, they can set the time to live to infinite. + // When time to live expires, the health event that contains the health information + // is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false. + // If not specified, time to live defaults to infinite value. + TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"` + // Description - The description of the health information. It represents free text used to add human readable information about the report. + // The maximum string length for the description is 4096 characters. + // If the provided string is longer, it will be automatically truncated. + // When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters. + // The presence of the marker indicates to users that truncation occurred. + // Note that when truncated, the description has less than 4096 characters from the original string. + Description *string `json:"Description,omitempty"` + // SequenceNumber - The sequence number for this health report as a numeric string. + // The report sequence number is used by the health store to detect stale reports. + // If not specified, a sequence number is auto-generated by the health client when a report is added. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires. + // If set to true, the report is removed from the health store after it expires. + // If set to false, the report is treated as an error when expired. The value of this property is false by default. + // When clients report periodically, they should set RemoveWhenExpired false (default). + // This way, is the reporter has issues (eg. deadlock) and can't report, the entity is evaluated at error when the health report expires. + // This flags the entity as being in Error health state. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` +} + +// HealthInformation represents common health report information. It is included in all health reports sent +// to health store and in all health events returned by health queries. +type HealthInformation struct { + // SourceID - The source name that identifies the client/watchdog/system component that generated the health information. + SourceID *string `json:"SourceId,omitempty"` + // Property - The property of the health information. An entity can have health reports for different properties. + // The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report. + // For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node, + // so it can report "AvailableDisk" property on that node. + // The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node. + // In the health store, these reports are treated as separate health events for the specified node. + // Together with the SourceId, the property uniquely identifies the health information. + Property *string `json:"Property,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration. + // When clients report periodically, they should send reports with higher frequency than time to live. + // If clients report on transition, they can set the time to live to infinite. + // When time to live expires, the health event that contains the health information + // is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false. + // If not specified, time to live defaults to infinite value. + TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"` + // Description - The description of the health information. It represents free text used to add human readable information about the report. + // The maximum string length for the description is 4096 characters. + // If the provided string is longer, it will be automatically truncated. + // When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters. + // The presence of the marker indicates to users that truncation occurred. + // Note that when truncated, the description has less than 4096 characters from the original string. + Description *string `json:"Description,omitempty"` + // SequenceNumber - The sequence number for this health report as a numeric string. + // The report sequence number is used by the health store to detect stale reports. + // If not specified, a sequence number is auto-generated by the health client when a report is added. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires. + // If set to true, the report is removed from the health store after it expires. + // If set to false, the report is treated as an error when expired. The value of this property is false by default. + // When clients report periodically, they should set RemoveWhenExpired false (default). + // This way, is the reporter has issues (eg. deadlock) and can't report, the entity is evaluated at error when the health report expires. + // This flags the entity as being in Error health state. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` +} + +// HealthStateCount represents information about how many health entities are in Ok, Warning and Error +// health state. +type HealthStateCount struct { + // OkCount - The number of health entities with aggregated health state Ok. + OkCount *int64 `json:"OkCount,omitempty"` + // WarningCount - The number of health entities with aggregated health state Warning. + WarningCount *int64 `json:"WarningCount,omitempty"` + // ErrorCount - The number of health entities with aggregated health state Error. + ErrorCount *int64 `json:"ErrorCount,omitempty"` +} + +// HealthStatistics the health statistics of an entity, returned as part of the health query result when +// the query description is configured to include statistics. +// The statistics include health state counts for all children types of the current entity. +// For example, for cluster, the health statistics include health state counts for nodes, applications, +// services, partitions, replicas, deployed applications and deployed service packages. +// For partition, the health statistics include health counts for replicas. +type HealthStatistics struct { + // HealthStateCountList - List of health state counts per entity kind, which keeps track of how many children of the queried entity are in Ok, Warning and Error state. + HealthStateCountList *[]EntityKindHealthStateCount `json:"HealthStateCountList,omitempty"` +} + +// ImageRegistryCredential image registry credential. +type ImageRegistryCredential struct { + // Server - Docker image registry server, without protocol such as `http` and `https`. + Server *string `json:"server,omitempty"` + // Username - The username for the private registry. + Username *string `json:"username,omitempty"` + // Password - The password for the private registry. + Password *string `json:"password,omitempty"` +} + +// ImageStoreContent information about the image store content. +type ImageStoreContent struct { + autorest.Response `json:"-"` + // StoreFiles - The list of image store file info objects represents files found under the given image store relative path. + StoreFiles *[]FileInfo `json:"StoreFiles,omitempty"` + // StoreFolders - The list of image store folder info objects represents subfolders found under the given image store relative path. + StoreFolders *[]FolderInfo `json:"StoreFolders,omitempty"` +} + +// ImageStoreCopyDescription information about how to copy image store content from one image store +// relative path to another image store relative path. +type ImageStoreCopyDescription struct { + // RemoteSource - The relative path of source image store content to be copied from. + RemoteSource *string `json:"RemoteSource,omitempty"` + // RemoteDestination - The relative path of destination image store content to be copied to. + RemoteDestination *string `json:"RemoteDestination,omitempty"` + // SkipFiles - The list of the file names to be skipped for copying. + SkipFiles *[]string `json:"SkipFiles,omitempty"` + // CheckMarkFile - Indicates whether to check mark file during copying. The property is true if checking mark file is required, false otherwise. The mark file is used to check whether the folder is well constructed. If the property is true and mark file does not exist, the copy is skipped. + CheckMarkFile *bool `json:"CheckMarkFile,omitempty"` +} + +// Int64PropertyValue describes a Service Fabric property value of type Int64. +type Int64PropertyValue struct { + // Data - The data of the property value. + Data *string `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for Int64PropertyValue. +func (i6pv Int64PropertyValue) MarshalJSON() ([]byte, error) { + i6pv.Kind = KindInt64 + objectMap := make(map[string]interface{}) + if i6pv.Data != nil { + objectMap["Data"] = i6pv.Data + } + if i6pv.Kind != "" { + objectMap["Kind"] = i6pv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return &i6pv, true +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &i6pv, true +} + +// Int64RangePartitionInformation describes the partition information for the integer range that is based +// on partition schemes. +type Int64RangePartitionInformation struct { + // LowKey - Specifies the minimum key value handled by this partition. + LowKey *string `json:"LowKey,omitempty"` + // HighKey - Specifies the maximum key value handled by this partition. + HighKey *string `json:"HighKey,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) MarshalJSON() ([]byte, error) { + i6rpi.ServicePartitionKind = ServicePartitionKindInt64Range1 + objectMap := make(map[string]interface{}) + if i6rpi.LowKey != nil { + objectMap["LowKey"] = i6rpi.LowKey + } + if i6rpi.HighKey != nil { + objectMap["HighKey"] = i6rpi.HighKey + } + if i6rpi.ID != nil { + objectMap["Id"] = i6rpi.ID + } + if i6rpi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = i6rpi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return &i6rpi, true +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &i6rpi, true +} + +// InvokeDataLossResult represents information about an operation in a terminal state (Completed or +// Faulted). +type InvokeDataLossResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// InvokeQuorumLossResult represents information about an operation in a terminal state (Completed or +// Faulted). +type InvokeQuorumLossResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// KeyValueStoreReplicaStatus key value store related information for the replica. +type KeyValueStoreReplicaStatus struct { + // DatabaseRowCountEstimate - Value indicating the estimated number of rows in the underlying database. + DatabaseRowCountEstimate *string `json:"DatabaseRowCountEstimate,omitempty"` + // DatabaseLogicalSizeEstimate - Value indicating the estimated size of the underlying database. + DatabaseLogicalSizeEstimate *string `json:"DatabaseLogicalSizeEstimate,omitempty"` + // CopyNotificationCurrentKeyFilter - Value indicating the latest key-prefix filter applied to enumeration during the callback. Null if there is no pending callback. + CopyNotificationCurrentKeyFilter *string `json:"CopyNotificationCurrentKeyFilter,omitempty"` + // CopyNotificationCurrentProgress - Value indicating the latest number of keys enumerated during the callback. 0 if there is no pending callback. + CopyNotificationCurrentProgress *string `json:"CopyNotificationCurrentProgress,omitempty"` + // StatusDetails - Value indicating the current status details of the replica. + StatusDetails *string `json:"StatusDetails,omitempty"` + // Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore' + Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) MarshalJSON() ([]byte, error) { + kvsrs.Kind = KindKeyValueStore + objectMap := make(map[string]interface{}) + if kvsrs.DatabaseRowCountEstimate != nil { + objectMap["DatabaseRowCountEstimate"] = kvsrs.DatabaseRowCountEstimate + } + if kvsrs.DatabaseLogicalSizeEstimate != nil { + objectMap["DatabaseLogicalSizeEstimate"] = kvsrs.DatabaseLogicalSizeEstimate + } + if kvsrs.CopyNotificationCurrentKeyFilter != nil { + objectMap["CopyNotificationCurrentKeyFilter"] = kvsrs.CopyNotificationCurrentKeyFilter + } + if kvsrs.CopyNotificationCurrentProgress != nil { + objectMap["CopyNotificationCurrentProgress"] = kvsrs.CopyNotificationCurrentProgress + } + if kvsrs.StatusDetails != nil { + objectMap["StatusDetails"] = kvsrs.StatusDetails + } + if kvsrs.Kind != "" { + objectMap["Kind"] = kvsrs.Kind + } + return json.Marshal(objectMap) +} + +// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) { + return &kvsrs, true +} + +// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsReplicaStatusBase() (*ReplicaStatusBase, bool) { + return nil, false +} + +// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) { + return &kvsrs, true +} + +// ListApplicationEvent ... +type ListApplicationEvent struct { + autorest.Response `json:"-"` + Value *[]BasicApplicationEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListApplicationEvent struct. +func (lae *ListApplicationEvent) UnmarshalJSON(body []byte) error { + ae, err := unmarshalBasicApplicationEventArray(body) + if err != nil { + return err + } + lae.Value = &ae + + return nil +} + +// ListClusterEvent ... +type ListClusterEvent struct { + autorest.Response `json:"-"` + Value *[]BasicClusterEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListClusterEvent struct. +func (lce *ListClusterEvent) UnmarshalJSON(body []byte) error { + ce, err := unmarshalBasicClusterEventArray(body) + if err != nil { + return err + } + lce.Value = &ce + + return nil +} + +// ListContainerInstanceEvent ... +type ListContainerInstanceEvent struct { + autorest.Response `json:"-"` + Value *[]ContainerInstanceEvent `json:"value,omitempty"` +} + +// ListDeployedCodePackageInfo ... +type ListDeployedCodePackageInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedCodePackageInfo `json:"value,omitempty"` +} + +// ListDeployedServicePackageInfo ... +type ListDeployedServicePackageInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedServicePackageInfo `json:"value,omitempty"` +} + +// ListDeployedServiceReplicaInfo ... +type ListDeployedServiceReplicaInfo struct { + autorest.Response `json:"-"` + Value *[]BasicDeployedServiceReplicaInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListDeployedServiceReplicaInfo struct. +func (ldsri *ListDeployedServiceReplicaInfo) UnmarshalJSON(body []byte) error { + dsri, err := unmarshalBasicDeployedServiceReplicaInfoArray(body) + if err != nil { + return err + } + ldsri.Value = &dsri + + return nil +} + +// ListDeployedServiceTypeInfo ... +type ListDeployedServiceTypeInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedServiceTypeInfo `json:"value,omitempty"` +} + +// ListFabricCodeVersionInfo ... +type ListFabricCodeVersionInfo struct { + autorest.Response `json:"-"` + Value *[]FabricCodeVersionInfo `json:"value,omitempty"` +} + +// ListFabricConfigVersionInfo ... +type ListFabricConfigVersionInfo struct { + autorest.Response `json:"-"` + Value *[]FabricConfigVersionInfo `json:"value,omitempty"` +} + +// ListFabricEvent ... +type ListFabricEvent struct { + autorest.Response `json:"-"` + Value *[]BasicFabricEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListFabricEvent struct. +func (lfe *ListFabricEvent) UnmarshalJSON(body []byte) error { + fe, err := unmarshalBasicFabricEventArray(body) + if err != nil { + return err + } + lfe.Value = &fe + + return nil +} + +// ListNodeEvent ... +type ListNodeEvent struct { + autorest.Response `json:"-"` + Value *[]BasicNodeEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListNodeEvent struct. +func (lne *ListNodeEvent) UnmarshalJSON(body []byte) error { + ne, err := unmarshalBasicNodeEventArray(body) + if err != nil { + return err + } + lne.Value = &ne + + return nil +} + +// ListOperationStatus ... +type ListOperationStatus struct { + autorest.Response `json:"-"` + Value *[]OperationStatus `json:"value,omitempty"` +} + +// ListPartitionEvent ... +type ListPartitionEvent struct { + autorest.Response `json:"-"` + Value *[]BasicPartitionEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListPartitionEvent struct. +func (lpe *ListPartitionEvent) UnmarshalJSON(body []byte) error { + peVar, err := unmarshalBasicPartitionEventArray(body) + if err != nil { + return err + } + lpe.Value = &peVar + + return nil +} + +// ListRepairTask ... +type ListRepairTask struct { + autorest.Response `json:"-"` + Value *[]RepairTask `json:"value,omitempty"` +} + +// ListReplicaEvent ... +type ListReplicaEvent struct { + autorest.Response `json:"-"` + Value *[]BasicReplicaEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListReplicaEvent struct. +func (lre *ListReplicaEvent) UnmarshalJSON(body []byte) error { + re, err := unmarshalBasicReplicaEventArray(body) + if err != nil { + return err + } + lre.Value = &re + + return nil +} + +// ListServiceEvent ... +type ListServiceEvent struct { + autorest.Response `json:"-"` + Value *[]BasicServiceEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListServiceEvent struct. +func (lse *ListServiceEvent) UnmarshalJSON(body []byte) error { + se, err := unmarshalBasicServiceEventArray(body) + if err != nil { + return err + } + lse.Value = &se + + return nil +} + +// ListServiceTypeInfo ... +type ListServiceTypeInfo struct { + autorest.Response `json:"-"` + Value *[]ServiceTypeInfo `json:"value,omitempty"` +} + +// LoadMetricReport represents the load metric report which contains the time metric was reported, its name +// and value. +type LoadMetricReport struct { + // LastReportedUtc - Gets the UTC time when the load was reported. + LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"` + // Name - The name of the load metric. + Name *string `json:"Name,omitempty"` + // Value - The value of the load metric. + Value *string `json:"Value,omitempty"` +} + +// LoadMetricReportInfo information about load reported by replica. +type LoadMetricReportInfo struct { + // Name - The name of the metric. + Name *string `json:"Name,omitempty"` + // Value - The value of the load for the metric.. + Value *int32 `json:"Value,omitempty"` + // LastReportedUtc - The UTC time when the load is reported. + LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"` +} + +// MonitoringPolicyDescription describes the parameters for monitoring an upgrade in Monitored mode. +type MonitoringPolicyDescription struct { + // FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations. + // Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically. + // Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual' + FailureAction FailureAction `json:"FailureAction,omitempty"` + // HealthCheckWaitDurationInMilliseconds - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"` + // HealthCheckStableDurationInMilliseconds - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"` + // HealthCheckRetryTimeoutInMilliseconds - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"` + // UpgradeTimeoutInMilliseconds - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"` + // UpgradeDomainTimeoutInMilliseconds - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"` +} + +// NameDescription describes a Service Fabric name. +type NameDescription struct { + // Name - The Service Fabric name, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// NamedPartitionInformation describes the partition information for the name as a string that is based on +// partition schemes. +type NamedPartitionInformation struct { + // Name - Name of the partition. + Name *string `json:"Name,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NamedPartitionInformation. +func (npi NamedPartitionInformation) MarshalJSON() ([]byte, error) { + npi.ServicePartitionKind = ServicePartitionKindNamed1 + objectMap := make(map[string]interface{}) + if npi.Name != nil { + objectMap["Name"] = npi.Name + } + if npi.ID != nil { + objectMap["Id"] = npi.ID + } + if npi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = npi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return &npi, true +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &npi, true +} + +// NamedPartitionSchemeDescription describes the named partition scheme of the service. +type NamedPartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions. + Names *[]string `json:"Names,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + npsd.PartitionScheme = PartitionSchemeNamed1 + objectMap := make(map[string]interface{}) + if npsd.Count != nil { + objectMap["Count"] = npsd.Count + } + if npsd.Names != nil { + objectMap["Names"] = npsd.Names + } + if npsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = npsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return &npsd, true +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &npsd, true +} + +// NetworkRef describes a network reference in a service. +type NetworkRef struct { + // Name - Name of the network. + Name *string `json:"name,omitempty"` +} + +// NodeAbortedEvent node Aborted event. +type NodeAbortedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeAbortedEvent. +func (nae NodeAbortedEvent) MarshalJSON() ([]byte, error) { + nae.Kind = KindNodeAborted + objectMap := make(map[string]interface{}) + if nae.NodeInstance != nil { + objectMap["NodeInstance"] = nae.NodeInstance + } + if nae.NodeID != nil { + objectMap["NodeId"] = nae.NodeID + } + if nae.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nae.UpgradeDomain + } + if nae.FaultDomain != nil { + objectMap["FaultDomain"] = nae.FaultDomain + } + if nae.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN + } + if nae.Hostname != nil { + objectMap["Hostname"] = nae.Hostname + } + if nae.IsSeedNode != nil { + objectMap["IsSeedNode"] = nae.IsSeedNode + } + if nae.NodeVersion != nil { + objectMap["NodeVersion"] = nae.NodeVersion + } + if nae.NodeName != nil { + objectMap["NodeName"] = nae.NodeName + } + if nae.EventInstanceID != nil { + objectMap["EventInstanceId"] = nae.EventInstanceID + } + if nae.TimeStamp != nil { + objectMap["TimeStamp"] = nae.TimeStamp + } + if nae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents + } + if nae.Kind != "" { + objectMap["Kind"] = nae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nae, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return &nae, true +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nae, true +} + +// NodeAbortingEvent node Aborting event. +type NodeAbortingEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeAbortingEvent. +func (nae NodeAbortingEvent) MarshalJSON() ([]byte, error) { + nae.Kind = KindNodeAborting + objectMap := make(map[string]interface{}) + if nae.NodeInstance != nil { + objectMap["NodeInstance"] = nae.NodeInstance + } + if nae.NodeID != nil { + objectMap["NodeId"] = nae.NodeID + } + if nae.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nae.UpgradeDomain + } + if nae.FaultDomain != nil { + objectMap["FaultDomain"] = nae.FaultDomain + } + if nae.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN + } + if nae.Hostname != nil { + objectMap["Hostname"] = nae.Hostname + } + if nae.IsSeedNode != nil { + objectMap["IsSeedNode"] = nae.IsSeedNode + } + if nae.NodeVersion != nil { + objectMap["NodeVersion"] = nae.NodeVersion + } + if nae.NodeName != nil { + objectMap["NodeName"] = nae.NodeName + } + if nae.EventInstanceID != nil { + objectMap["EventInstanceId"] = nae.EventInstanceID + } + if nae.TimeStamp != nil { + objectMap["TimeStamp"] = nae.TimeStamp + } + if nae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents + } + if nae.Kind != "" { + objectMap["Kind"] = nae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nae, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return &nae, true +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAbortingEvent. +func (nae NodeAbortingEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nae, true +} + +// NodeAddedEvent node Added event. +type NodeAddedEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeType - Type of Node. + NodeType *string `json:"NodeType,omitempty"` + // FabricVersion - Fabric version. + FabricVersion *string `json:"FabricVersion,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // NodeCapacities - Capacities. + NodeCapacities *string `json:"NodeCapacities,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeAddedEvent. +func (nae NodeAddedEvent) MarshalJSON() ([]byte, error) { + nae.Kind = KindNodeAdded + objectMap := make(map[string]interface{}) + if nae.NodeID != nil { + objectMap["NodeId"] = nae.NodeID + } + if nae.NodeInstance != nil { + objectMap["NodeInstance"] = nae.NodeInstance + } + if nae.NodeType != nil { + objectMap["NodeType"] = nae.NodeType + } + if nae.FabricVersion != nil { + objectMap["FabricVersion"] = nae.FabricVersion + } + if nae.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN + } + if nae.NodeCapacities != nil { + objectMap["NodeCapacities"] = nae.NodeCapacities + } + if nae.NodeName != nil { + objectMap["NodeName"] = nae.NodeName + } + if nae.EventInstanceID != nil { + objectMap["EventInstanceId"] = nae.EventInstanceID + } + if nae.TimeStamp != nil { + objectMap["TimeStamp"] = nae.TimeStamp + } + if nae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents + } + if nae.Kind != "" { + objectMap["Kind"] = nae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nae, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return &nae, true +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAddedEvent. +func (nae NodeAddedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nae, true +} + +// NodeCloseEvent node Close event. +type NodeCloseEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *string `json:"NodeInstance,omitempty"` + // Error - Describes error. + Error *string `json:"Error,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeCloseEvent. +func (nce NodeCloseEvent) MarshalJSON() ([]byte, error) { + nce.Kind = KindNodeClose + objectMap := make(map[string]interface{}) + if nce.NodeID != nil { + objectMap["NodeId"] = nce.NodeID + } + if nce.NodeInstance != nil { + objectMap["NodeInstance"] = nce.NodeInstance + } + if nce.Error != nil { + objectMap["Error"] = nce.Error + } + if nce.NodeName != nil { + objectMap["NodeName"] = nce.NodeName + } + if nce.EventInstanceID != nil { + objectMap["EventInstanceId"] = nce.EventInstanceID + } + if nce.TimeStamp != nil { + objectMap["TimeStamp"] = nce.TimeStamp + } + if nce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nce.HasCorrelatedEvents + } + if nce.Kind != "" { + objectMap["Kind"] = nce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return &nce, true +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeCloseEvent. +func (nce NodeCloseEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nce, true +} + +// NodeClosingEvent node Closing event. +type NodeClosingEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeClosingEvent. +func (nce NodeClosingEvent) MarshalJSON() ([]byte, error) { + nce.Kind = KindNodeClosing + objectMap := make(map[string]interface{}) + if nce.NodeInstance != nil { + objectMap["NodeInstance"] = nce.NodeInstance + } + if nce.NodeID != nil { + objectMap["NodeId"] = nce.NodeID + } + if nce.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nce.UpgradeDomain + } + if nce.FaultDomain != nil { + objectMap["FaultDomain"] = nce.FaultDomain + } + if nce.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nce.IPAddressOrFQDN + } + if nce.Hostname != nil { + objectMap["Hostname"] = nce.Hostname + } + if nce.IsSeedNode != nil { + objectMap["IsSeedNode"] = nce.IsSeedNode + } + if nce.NodeVersion != nil { + objectMap["NodeVersion"] = nce.NodeVersion + } + if nce.NodeName != nil { + objectMap["NodeName"] = nce.NodeName + } + if nce.EventInstanceID != nil { + objectMap["EventInstanceId"] = nce.EventInstanceID + } + if nce.TimeStamp != nil { + objectMap["TimeStamp"] = nce.TimeStamp + } + if nce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nce.HasCorrelatedEvents + } + if nce.Kind != "" { + objectMap["Kind"] = nce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return &nce, true +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeClosingEvent. +func (nce NodeClosingEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nce, true +} + +// NodeDeactivateCompleteEvent node Deactivate Complete event. +type NodeDeactivateCompleteEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // EffectiveDeactivateIntent - Describes deactivate intent. + EffectiveDeactivateIntent *string `json:"EffectiveDeactivateIntent,omitempty"` + // BatchIdsWithDeactivateIntent - Batch Ids. + BatchIdsWithDeactivateIntent *string `json:"BatchIdsWithDeactivateIntent,omitempty"` + // StartTime - Start time. + StartTime *date.Time `json:"StartTime,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) MarshalJSON() ([]byte, error) { + ndce.Kind = KindNodeDeactivateComplete + objectMap := make(map[string]interface{}) + if ndce.NodeInstance != nil { + objectMap["NodeInstance"] = ndce.NodeInstance + } + if ndce.EffectiveDeactivateIntent != nil { + objectMap["EffectiveDeactivateIntent"] = ndce.EffectiveDeactivateIntent + } + if ndce.BatchIdsWithDeactivateIntent != nil { + objectMap["BatchIdsWithDeactivateIntent"] = ndce.BatchIdsWithDeactivateIntent + } + if ndce.StartTime != nil { + objectMap["StartTime"] = ndce.StartTime + } + if ndce.NodeName != nil { + objectMap["NodeName"] = ndce.NodeName + } + if ndce.EventInstanceID != nil { + objectMap["EventInstanceId"] = ndce.EventInstanceID + } + if ndce.TimeStamp != nil { + objectMap["TimeStamp"] = ndce.TimeStamp + } + if ndce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ndce.HasCorrelatedEvents + } + if ndce.Kind != "" { + objectMap["Kind"] = ndce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ndce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return &ndce, true +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompleteEvent. +func (ndce NodeDeactivateCompleteEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ndce, true +} + +// NodeDeactivateStartEvent node Deactivate Start event. +type NodeDeactivateStartEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // BatchID - Batch Id. + BatchID *string `json:"BatchId,omitempty"` + // DeactivateIntent - Describes deactivate intent. + DeactivateIntent *string `json:"DeactivateIntent,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) MarshalJSON() ([]byte, error) { + ndse.Kind = KindNodeDeactivateStart + objectMap := make(map[string]interface{}) + if ndse.NodeInstance != nil { + objectMap["NodeInstance"] = ndse.NodeInstance + } + if ndse.BatchID != nil { + objectMap["BatchId"] = ndse.BatchID + } + if ndse.DeactivateIntent != nil { + objectMap["DeactivateIntent"] = ndse.DeactivateIntent + } + if ndse.NodeName != nil { + objectMap["NodeName"] = ndse.NodeName + } + if ndse.EventInstanceID != nil { + objectMap["EventInstanceId"] = ndse.EventInstanceID + } + if ndse.TimeStamp != nil { + objectMap["TimeStamp"] = ndse.TimeStamp + } + if ndse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ndse.HasCorrelatedEvents + } + if ndse.Kind != "" { + objectMap["Kind"] = ndse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ndse, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return &ndse, true +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartEvent. +func (ndse NodeDeactivateStartEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ndse, true +} + +// NodeDeactivationInfo information about the node deactivation. This information is valid for a node that +// is undergoing deactivation or has already been deactivated. +type NodeDeactivationInfo struct { + // NodeDeactivationIntent - The intent or the reason for deactivating the node. Following are the possible values for it. Possible values include: 'NodeDeactivationIntentInvalid', 'NodeDeactivationIntentPause', 'NodeDeactivationIntentRestart', 'NodeDeactivationIntentRemoveData', 'NodeDeactivationIntentRemoveNode' + NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"` + // NodeDeactivationStatus - The status of node deactivation operation. Following are the possible values. Possible values include: 'NodeDeactivationStatusNone', 'NodeDeactivationStatusSafetyCheckInProgress', 'NodeDeactivationStatusSafetyCheckComplete', 'NodeDeactivationStatusCompleted' + NodeDeactivationStatus NodeDeactivationStatus `json:"NodeDeactivationStatus,omitempty"` + // NodeDeactivationTask - List of tasks representing the deactivation operation on the node. + NodeDeactivationTask *[]NodeDeactivationTask `json:"NodeDeactivationTask,omitempty"` + // PendingSafetyChecks - List of pending safety checks + PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"` +} + +// NodeDeactivationTask the task representing the deactivation operation on the node. +type NodeDeactivationTask struct { + // NodeDeactivationTaskID - Identity of the task related to deactivation operation on the node. + NodeDeactivationTaskID *NodeDeactivationTaskID `json:"NodeDeactivationTaskId,omitempty"` + // NodeDeactivationIntent - The intent or the reason for deactivating the node. Following are the possible values for it. Possible values include: 'NodeDeactivationIntentInvalid', 'NodeDeactivationIntentPause', 'NodeDeactivationIntentRestart', 'NodeDeactivationIntentRemoveData', 'NodeDeactivationIntentRemoveNode' + NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"` +} + +// NodeDeactivationTaskID identity of the task related to deactivation operation on the node. +type NodeDeactivationTaskID struct { + // ID - Value of the task id. + ID *string `json:"Id,omitempty"` + // NodeDeactivationTaskType - The type of the task that performed the node deactivation. Following are the possible values. Possible values include: 'NodeDeactivationTaskTypeInvalid', 'NodeDeactivationTaskTypeInfrastructure', 'NodeDeactivationTaskTypeRepair', 'NodeDeactivationTaskTypeClient' + NodeDeactivationTaskType NodeDeactivationTaskType `json:"NodeDeactivationTaskType,omitempty"` +} + +// NodeDownEvent node Down event. +type NodeDownEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // LastNodeUpAt - Time when Node was last up. + LastNodeUpAt *date.Time `json:"LastNodeUpAt,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDownEvent. +func (nde NodeDownEvent) MarshalJSON() ([]byte, error) { + nde.Kind = KindNodeDown + objectMap := make(map[string]interface{}) + if nde.NodeInstance != nil { + objectMap["NodeInstance"] = nde.NodeInstance + } + if nde.LastNodeUpAt != nil { + objectMap["LastNodeUpAt"] = nde.LastNodeUpAt + } + if nde.NodeName != nil { + objectMap["NodeName"] = nde.NodeName + } + if nde.EventInstanceID != nil { + objectMap["EventInstanceId"] = nde.EventInstanceID + } + if nde.TimeStamp != nil { + objectMap["TimeStamp"] = nde.TimeStamp + } + if nde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nde.HasCorrelatedEvents + } + if nde.Kind != "" { + objectMap["Kind"] = nde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nde, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return &nde, true +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nde, true +} + +// BasicNodeEvent represents the base for all Node Events. +type BasicNodeEvent interface { + AsNodeAbortedEvent() (*NodeAbortedEvent, bool) + AsNodeAbortingEvent() (*NodeAbortingEvent, bool) + AsNodeAddedEvent() (*NodeAddedEvent, bool) + AsNodeCloseEvent() (*NodeCloseEvent, bool) + AsNodeClosingEvent() (*NodeClosingEvent, bool) + AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) + AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) + AsNodeDownEvent() (*NodeDownEvent, bool) + AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) + AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) + AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) + AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) + AsNodeOpeningEvent() (*NodeOpeningEvent, bool) + AsNodeRemovedEvent() (*NodeRemovedEvent, bool) + AsNodeUpEvent() (*NodeUpEvent, bool) + AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) + AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) + AsNodeEvent() (*NodeEvent, bool) +} + +// NodeEvent represents the base for all Node Events. +type NodeEvent struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicNodeEvent(body []byte) (BasicNodeEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindNodeAborted): + var nae NodeAbortedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAborting): + var nae NodeAbortingEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAdded): + var nae NodeAddedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeClose): + var nce NodeCloseEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeClosing): + var nce NodeClosingEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeDeactivateComplete): + var ndce NodeDeactivateCompleteEvent + err := json.Unmarshal(body, &ndce) + return ndce, err + case string(KindNodeDeactivateStart): + var ndse NodeDeactivateStartEvent + err := json.Unmarshal(body, &ndse) + return ndse, err + case string(KindNodeDown): + var nde NodeDownEvent + err := json.Unmarshal(body, &nde) + return nde, err + case string(KindNodeHealthReportCreated): + var nhrce NodeHealthReportCreatedEvent + err := json.Unmarshal(body, &nhrce) + return nhrce, err + case string(KindNodeHealthReportExpired): + var nhree NodeHealthReportExpiredEvent + err := json.Unmarshal(body, &nhree) + return nhree, err + case string(KindNodeOpenedSuccess): + var nose NodeOpenedSuccessEvent + err := json.Unmarshal(body, &nose) + return nose, err + case string(KindNodeOpenFailed): + var nofe NodeOpenFailedEvent + err := json.Unmarshal(body, &nofe) + return nofe, err + case string(KindNodeOpening): + var noe NodeOpeningEvent + err := json.Unmarshal(body, &noe) + return noe, err + case string(KindNodeRemoved): + var nre NodeRemovedEvent + err := json.Unmarshal(body, &nre) + return nre, err + case string(KindNodeUp): + var nue NodeUpEvent + err := json.Unmarshal(body, &nue) + return nue, err + case string(KindChaosRestartNodeFaultCompleted): + var crnfce ChaosRestartNodeFaultCompletedEvent + err := json.Unmarshal(body, &crnfce) + return crnfce, err + case string(KindChaosRestartNodeFaultScheduled): + var crnfse ChaosRestartNodeFaultScheduledEvent + err := json.Unmarshal(body, &crnfse) + return crnfse, err + default: + var ne NodeEvent + err := json.Unmarshal(body, &ne) + return ne, err + } +} +func unmarshalBasicNodeEventArray(body []byte) ([]BasicNodeEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + neArray := make([]BasicNodeEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ne, err := unmarshalBasicNodeEvent(*rawMessage) + if err != nil { + return nil, err + } + neArray[index] = ne + } + return neArray, nil +} + +// MarshalJSON is the custom marshaler for NodeEvent. +func (ne NodeEvent) MarshalJSON() ([]byte, error) { + ne.Kind = KindNodeEvent + objectMap := make(map[string]interface{}) + if ne.NodeName != nil { + objectMap["NodeName"] = ne.NodeName + } + if ne.EventInstanceID != nil { + objectMap["EventInstanceId"] = ne.EventInstanceID + } + if ne.TimeStamp != nil { + objectMap["TimeStamp"] = ne.TimeStamp + } + if ne.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ne.HasCorrelatedEvents + } + if ne.Kind != "" { + objectMap["Kind"] = ne.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeEvent() (*NodeEvent, bool) { + return &ne, true +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ne, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ne, true +} + +// NodeHealth information about the health of a Service Fabric node. +type NodeHealth struct { + autorest.Response `json:"-"` + // Name - Name of the node whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// NodeHealthEvaluation represents health evaluation for a node, containing information about the data and +// the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type NodeHealthEvaluation struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the node. The types of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) MarshalJSON() ([]byte, error) { + nhe.Kind = KindNode + objectMap := make(map[string]interface{}) + if nhe.NodeName != nil { + objectMap["NodeName"] = nhe.NodeName + } + if nhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations + } + if nhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState + } + if nhe.Description != nil { + objectMap["Description"] = nhe.Description + } + if nhe.Kind != "" { + objectMap["Kind"] = nhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return &nhe, true +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &nhe, true +} + +// NodeHealthReportCreatedEvent node Health Report Created event. +type NodeHealthReportCreatedEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + nhrce.Kind = KindNodeHealthReportCreated + objectMap := make(map[string]interface{}) + if nhrce.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = nhrce.NodeInstanceID + } + if nhrce.SourceID != nil { + objectMap["SourceId"] = nhrce.SourceID + } + if nhrce.Property != nil { + objectMap["Property"] = nhrce.Property + } + if nhrce.HealthState != nil { + objectMap["HealthState"] = nhrce.HealthState + } + if nhrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = nhrce.TimeToLiveMs + } + if nhrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = nhrce.SequenceNumber + } + if nhrce.Description != nil { + objectMap["Description"] = nhrce.Description + } + if nhrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = nhrce.RemoveWhenExpired + } + if nhrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = nhrce.SourceUtcTimestamp + } + if nhrce.NodeName != nil { + objectMap["NodeName"] = nhrce.NodeName + } + if nhrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = nhrce.EventInstanceID + } + if nhrce.TimeStamp != nil { + objectMap["TimeStamp"] = nhrce.TimeStamp + } + if nhrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nhrce.HasCorrelatedEvents + } + if nhrce.Kind != "" { + objectMap["Kind"] = nhrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nhrce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return &nhrce, true +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeHealthReportCreatedEvent. +func (nhrce NodeHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nhrce, true +} + +// NodeHealthReportExpiredEvent node Health Report Expired event. +type NodeHealthReportExpiredEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + nhree.Kind = KindNodeHealthReportExpired + objectMap := make(map[string]interface{}) + if nhree.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = nhree.NodeInstanceID + } + if nhree.SourceID != nil { + objectMap["SourceId"] = nhree.SourceID + } + if nhree.Property != nil { + objectMap["Property"] = nhree.Property + } + if nhree.HealthState != nil { + objectMap["HealthState"] = nhree.HealthState + } + if nhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = nhree.TimeToLiveMs + } + if nhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = nhree.SequenceNumber + } + if nhree.Description != nil { + objectMap["Description"] = nhree.Description + } + if nhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = nhree.RemoveWhenExpired + } + if nhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = nhree.SourceUtcTimestamp + } + if nhree.NodeName != nil { + objectMap["NodeName"] = nhree.NodeName + } + if nhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = nhree.EventInstanceID + } + if nhree.TimeStamp != nil { + objectMap["TimeStamp"] = nhree.TimeStamp + } + if nhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nhree.HasCorrelatedEvents + } + if nhree.Kind != "" { + objectMap["Kind"] = nhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nhree, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return &nhree, true +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nhree, true +} + +// NodeHealthState represents the health state of a node, which contains the node identifier and its +// aggregated health state. +type NodeHealthState struct { + // Name - The name of a Service Fabric node. + Name *string `json:"Name,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name. + ID *NodeID `json:"Id,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// NodeHealthStateChunk represents the health state chunk of a node, which contains the node name and its +// aggregated health state. +type NodeHealthStateChunk struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// NodeHealthStateChunkList the list of node health state chunks in the cluster that respect the input +// filters in the chunk query. Returned by get cluster health state chunks query. +type NodeHealthStateChunkList struct { + // Items - The list of node health state chunks that respect the input filters in the chunk query. + Items *[]NodeHealthStateChunk `json:"Items,omitempty"` + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// NodeHealthStateFilter defines matching criteria to determine whether a node should be included in the +// returned cluster health chunk. +// One filter can match zero, one or multiple nodes, depending on its properties. +// Can be specified in the cluster health chunk query description. +type NodeHealthStateFilter struct { + // NodeNameFilter - Name of the node that matches the filter. The filter is applied only to the specified node, if it exists. + // If the node doesn't exist, no node is returned in the cluster health chunk based on this filter. + // If the node exists, it is included in the cluster health chunk if the health state matches the other filter properties. + // If not specified, all nodes that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + NodeNameFilter *string `json:"NodeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the nodes. It allows selecting nodes if they match the desired health states. + // The possible values are integer value of one of the following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching node is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches nodes with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// NodeID an internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically +// generated from node name. +type NodeID struct { + // ID - Value of the node Id. This is a 128 bit integer. + ID *string `json:"Id,omitempty"` +} + +// NodeImpact describes the expected impact of a repair to a particular node. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeImpact struct { + // NodeName - The name of the impacted node. + NodeName *string `json:"NodeName,omitempty"` + // ImpactLevel - The level of impact expected. Possible values include: 'ImpactLevelInvalid', 'ImpactLevelNone', 'ImpactLevelRestart', 'ImpactLevelRemoveData', 'ImpactLevelRemoveNode' + ImpactLevel ImpactLevel `json:"ImpactLevel,omitempty"` +} + +// NodeInfo information about a node in Service Fabric cluster. +type NodeInfo struct { + autorest.Response `json:"-"` + // Name - The name of a Service Fabric node. + Name *string `json:"Name,omitempty"` + // IPAddressOrFQDN - The IP address or fully qualified domain name of the node. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Type - The type of the node. + Type *string `json:"Type,omitempty"` + // CodeVersion - The version of Service Fabric binaries that the node is running. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The version of Service Fabric cluster manifest that the node is using. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // NodeStatus - The status of the node. Possible values include: 'NodeStatusInvalid', 'NodeStatusUp', 'NodeStatusDown', 'NodeStatusEnabling', 'NodeStatusDisabling', 'NodeStatusDisabled', 'NodeStatusUnknown', 'NodeStatusRemoved' + NodeStatus NodeStatus `json:"NodeStatus,omitempty"` + // NodeUpTimeInSeconds - Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up. + NodeUpTimeInSeconds *string `json:"NodeUpTimeInSeconds,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // IsSeedNode - Indicates if the node is a seed node or not. Returns true if the node is a seed node, otherwise false. A quorum of seed nodes are required for proper operation of Service Fabric cluster. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // UpgradeDomain - The upgrade domain of the node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - The fault domain of the node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name. + ID *NodeID `json:"Id,omitempty"` + // InstanceID - The ID representing the node instance. While the ID of the node is deterministically generated from the node name and remains same across restarts, the InstanceId changes every time node restarts. + InstanceID *string `json:"InstanceId,omitempty"` + // NodeDeactivationInfo - Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated. + NodeDeactivationInfo *NodeDeactivationInfo `json:"NodeDeactivationInfo,omitempty"` + // IsStopped - Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false. + IsStopped *bool `json:"IsStopped,omitempty"` + // NodeDownTimeInSeconds - Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down. + NodeDownTimeInSeconds *string `json:"NodeDownTimeInSeconds,omitempty"` + // NodeUpAt - Date time in UTC when the node came up. If the node has never been up then this value will be zero date time. + NodeUpAt *date.Time `json:"NodeUpAt,omitempty"` + // NodeDownAt - Date time in UTC when the node went down. If node has never been down then this value will be zero date time. + NodeDownAt *date.Time `json:"NodeDownAt,omitempty"` +} + +// NodeLoadInfo information about load on a Service Fabric node. It holds a summary of all metrics and +// their load on a node. +type NodeLoadInfo struct { + autorest.Response `json:"-"` + // NodeName - Name of the node for which the load information is provided by this object. + NodeName *string `json:"NodeName,omitempty"` + // NodeLoadMetricInformation - List that contains metrics and their load information on this node. + NodeLoadMetricInformation *[]NodeLoadMetricInformation `json:"NodeLoadMetricInformation,omitempty"` +} + +// NodeLoadMetricInformation represents data structure that contains load information for a certain metric +// on a node. +type NodeLoadMetricInformation struct { + // Name - Name of the metric for which this load information is provided. + Name *string `json:"Name,omitempty"` + // NodeCapacity - Total capacity on the node for this metric. + NodeCapacity *string `json:"NodeCapacity,omitempty"` + // NodeLoad - Current load on the node for this metric. + NodeLoad *string `json:"NodeLoad,omitempty"` + // NodeRemainingCapacity - The remaining capacity on the node for this metric. + NodeRemainingCapacity *string `json:"NodeRemainingCapacity,omitempty"` + // IsCapacityViolation - Indicates if there is a capacity violation for this metric on the node. + IsCapacityViolation *bool `json:"IsCapacityViolation,omitempty"` + // NodeBufferedCapacity - The value that indicates the reserved capacity for this metric on the node. + NodeBufferedCapacity *string `json:"NodeBufferedCapacity,omitempty"` + // NodeRemainingBufferedCapacity - The remaining reserved capacity for this metric on the node. + NodeRemainingBufferedCapacity *string `json:"NodeRemainingBufferedCapacity,omitempty"` +} + +// NodeOpenedSuccessEvent node Opened Success event. +type NodeOpenedSuccessEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) MarshalJSON() ([]byte, error) { + nose.Kind = KindNodeOpenedSuccess + objectMap := make(map[string]interface{}) + if nose.NodeInstance != nil { + objectMap["NodeInstance"] = nose.NodeInstance + } + if nose.NodeID != nil { + objectMap["NodeId"] = nose.NodeID + } + if nose.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nose.UpgradeDomain + } + if nose.FaultDomain != nil { + objectMap["FaultDomain"] = nose.FaultDomain + } + if nose.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nose.IPAddressOrFQDN + } + if nose.Hostname != nil { + objectMap["Hostname"] = nose.Hostname + } + if nose.IsSeedNode != nil { + objectMap["IsSeedNode"] = nose.IsSeedNode + } + if nose.NodeVersion != nil { + objectMap["NodeVersion"] = nose.NodeVersion + } + if nose.NodeName != nil { + objectMap["NodeName"] = nose.NodeName + } + if nose.EventInstanceID != nil { + objectMap["EventInstanceId"] = nose.EventInstanceID + } + if nose.TimeStamp != nil { + objectMap["TimeStamp"] = nose.TimeStamp + } + if nose.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nose.HasCorrelatedEvents + } + if nose.Kind != "" { + objectMap["Kind"] = nose.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nose, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return &nose, true +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenedSuccessEvent. +func (nose NodeOpenedSuccessEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nose, true +} + +// NodeOpenFailedEvent node Open Failed event. +type NodeOpenFailedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // Error - Describes the error. + Error *string `json:"Error,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) MarshalJSON() ([]byte, error) { + nofe.Kind = KindNodeOpenFailed + objectMap := make(map[string]interface{}) + if nofe.NodeInstance != nil { + objectMap["NodeInstance"] = nofe.NodeInstance + } + if nofe.NodeID != nil { + objectMap["NodeId"] = nofe.NodeID + } + if nofe.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nofe.UpgradeDomain + } + if nofe.FaultDomain != nil { + objectMap["FaultDomain"] = nofe.FaultDomain + } + if nofe.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nofe.IPAddressOrFQDN + } + if nofe.Hostname != nil { + objectMap["Hostname"] = nofe.Hostname + } + if nofe.IsSeedNode != nil { + objectMap["IsSeedNode"] = nofe.IsSeedNode + } + if nofe.NodeVersion != nil { + objectMap["NodeVersion"] = nofe.NodeVersion + } + if nofe.Error != nil { + objectMap["Error"] = nofe.Error + } + if nofe.NodeName != nil { + objectMap["NodeName"] = nofe.NodeName + } + if nofe.EventInstanceID != nil { + objectMap["EventInstanceId"] = nofe.EventInstanceID + } + if nofe.TimeStamp != nil { + objectMap["TimeStamp"] = nofe.TimeStamp + } + if nofe.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nofe.HasCorrelatedEvents + } + if nofe.Kind != "" { + objectMap["Kind"] = nofe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nofe, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return &nofe, true +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nofe, true +} + +// NodeOpeningEvent node Opening event. +type NodeOpeningEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeOpeningEvent. +func (noe NodeOpeningEvent) MarshalJSON() ([]byte, error) { + noe.Kind = KindNodeOpening + objectMap := make(map[string]interface{}) + if noe.NodeInstance != nil { + objectMap["NodeInstance"] = noe.NodeInstance + } + if noe.NodeID != nil { + objectMap["NodeId"] = noe.NodeID + } + if noe.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = noe.UpgradeDomain + } + if noe.FaultDomain != nil { + objectMap["FaultDomain"] = noe.FaultDomain + } + if noe.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = noe.IPAddressOrFQDN + } + if noe.Hostname != nil { + objectMap["Hostname"] = noe.Hostname + } + if noe.IsSeedNode != nil { + objectMap["IsSeedNode"] = noe.IsSeedNode + } + if noe.NodeVersion != nil { + objectMap["NodeVersion"] = noe.NodeVersion + } + if noe.NodeName != nil { + objectMap["NodeName"] = noe.NodeName + } + if noe.EventInstanceID != nil { + objectMap["EventInstanceId"] = noe.EventInstanceID + } + if noe.TimeStamp != nil { + objectMap["TimeStamp"] = noe.TimeStamp + } + if noe.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = noe.HasCorrelatedEvents + } + if noe.Kind != "" { + objectMap["Kind"] = noe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &noe, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return &noe, true +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpeningEvent. +func (noe NodeOpeningEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &noe, true +} + +// NodeRemovedEvent node Removed event. +type NodeRemovedEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeType - Type of Node. + NodeType *string `json:"NodeType,omitempty"` + // FabricVersion - Fabric version. + FabricVersion *string `json:"FabricVersion,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // NodeCapacities - Capacities. + NodeCapacities *string `json:"NodeCapacities,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRemovedEvent. +func (nre NodeRemovedEvent) MarshalJSON() ([]byte, error) { + nre.Kind = KindNodeRemoved + objectMap := make(map[string]interface{}) + if nre.NodeID != nil { + objectMap["NodeId"] = nre.NodeID + } + if nre.NodeInstance != nil { + objectMap["NodeInstance"] = nre.NodeInstance + } + if nre.NodeType != nil { + objectMap["NodeType"] = nre.NodeType + } + if nre.FabricVersion != nil { + objectMap["FabricVersion"] = nre.FabricVersion + } + if nre.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nre.IPAddressOrFQDN + } + if nre.NodeCapacities != nil { + objectMap["NodeCapacities"] = nre.NodeCapacities + } + if nre.NodeName != nil { + objectMap["NodeName"] = nre.NodeName + } + if nre.EventInstanceID != nil { + objectMap["EventInstanceId"] = nre.EventInstanceID + } + if nre.TimeStamp != nil { + objectMap["TimeStamp"] = nre.TimeStamp + } + if nre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nre.HasCorrelatedEvents + } + if nre.Kind != "" { + objectMap["Kind"] = nre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nre, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return &nre, true +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeRemovedEvent. +func (nre NodeRemovedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nre, true +} + +// NodeRepairImpactDescription describes the expected impact of a repair on a set of nodes. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeRepairImpactDescription struct { + // NodeImpactList - The list of nodes impacted by a repair action and their respective expected impact. + NodeImpactList *[]NodeImpact `json:"NodeImpactList,omitempty"` + // Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode' + Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) MarshalJSON() ([]byte, error) { + nrid.Kind = KindBasicRepairImpactDescriptionBaseKindNode + objectMap := make(map[string]interface{}) + if nrid.NodeImpactList != nil { + objectMap["NodeImpactList"] = nrid.NodeImpactList + } + if nrid.Kind != "" { + objectMap["Kind"] = nrid.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) { + return &nrid, true +} + +// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) { + return nil, false +} + +// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) { + return &nrid, true +} + +// NodeRepairTargetDescription describes the list of nodes targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeRepairTargetDescription struct { + // NodeNames - The list of nodes targeted by a repair action. + NodeNames *[]string `json:"NodeNames,omitempty"` + // Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode' + Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) MarshalJSON() ([]byte, error) { + nrtd.Kind = KindBasicRepairTargetDescriptionBaseKindNode + objectMap := make(map[string]interface{}) + if nrtd.NodeNames != nil { + objectMap["NodeNames"] = nrtd.NodeNames + } + if nrtd.Kind != "" { + objectMap["Kind"] = nrtd.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) { + return &nrtd, true +} + +// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) { + return nil, false +} + +// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) { + return &nrtd, true +} + +// NodeResult contains information about a node that was targeted by a user-induced operation. +type NodeResult struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // NodeInstanceID - The node instance id. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` +} + +// NodesHealthEvaluation represents health evaluation for nodes, containing health evaluations for each +// unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster +// health and the aggregated health state is either Error or Warning. +type NodesHealthEvaluation struct { + // MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes found in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) MarshalJSON() ([]byte, error) { + nhe.Kind = KindNodes + objectMap := make(map[string]interface{}) + if nhe.MaxPercentUnhealthyNodes != nil { + objectMap["MaxPercentUnhealthyNodes"] = nhe.MaxPercentUnhealthyNodes + } + if nhe.TotalCount != nil { + objectMap["TotalCount"] = nhe.TotalCount + } + if nhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations + } + if nhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState + } + if nhe.Description != nil { + objectMap["Description"] = nhe.Description + } + if nhe.Kind != "" { + objectMap["Kind"] = nhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return &nhe, true +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &nhe, true +} + +// NodeTransitionProgress information about an NodeTransition operation. This class contains an +// OperationState and a NodeTransitionResult. The NodeTransitionResult is not valid until OperationState +// is Completed or Faulted. +type NodeTransitionProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // NodeTransitionResult - Represents information about an operation in a terminal state (Completed or Faulted). + NodeTransitionResult *NodeTransitionResult `json:"NodeTransitionResult,omitempty"` +} + +// NodeTransitionResult represents information about an operation in a terminal state (Completed or +// Faulted). +type NodeTransitionResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // NodeResult - Contains information about a node that was targeted by a user-induced operation. + NodeResult *NodeResult `json:"NodeResult,omitempty"` +} + +// NodeUpEvent node Up event. +type NodeUpEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // LastNodeDownAt - Time when Node was last down. + LastNodeDownAt *date.Time `json:"LastNodeDownAt,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeUpEvent. +func (nue NodeUpEvent) MarshalJSON() ([]byte, error) { + nue.Kind = KindNodeUp + objectMap := make(map[string]interface{}) + if nue.NodeInstance != nil { + objectMap["NodeInstance"] = nue.NodeInstance + } + if nue.LastNodeDownAt != nil { + objectMap["LastNodeDownAt"] = nue.LastNodeDownAt + } + if nue.NodeName != nil { + objectMap["NodeName"] = nue.NodeName + } + if nue.EventInstanceID != nil { + objectMap["EventInstanceId"] = nue.EventInstanceID + } + if nue.TimeStamp != nil { + objectMap["TimeStamp"] = nue.TimeStamp + } + if nue.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nue.HasCorrelatedEvents + } + if nue.Kind != "" { + objectMap["Kind"] = nue.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nue, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return &nue, true +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nue, true +} + +// NodeUpgradeProgressInfo information about the upgrading node and its status +type NodeUpgradeProgressInfo struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // UpgradePhase - The state of the upgrading node. Possible values include: 'NodeUpgradePhaseInvalid', 'NodeUpgradePhasePreUpgradeSafetyCheck', 'NodeUpgradePhaseUpgrading', 'NodeUpgradePhasePostUpgradeSafetyCheck' + UpgradePhase NodeUpgradePhase `json:"UpgradePhase,omitempty"` + // PendingSafetyChecks - List of pending safety checks + PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"` +} + +// OperationStatus contains the OperationId, OperationState, and OperationType for user-induced operations. +type OperationStatus struct { + // OperationID - A GUID that identifies a call to this API. This is also passed into the corresponding GetProgress API. + OperationID *uuid.UUID `json:"OperationId,omitempty"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // Type - The type of the operation. Possible values include: 'OperationTypeInvalid', 'OperationTypePartitionDataLoss', 'OperationTypePartitionQuorumLoss', 'OperationTypePartitionRestart', 'OperationTypeNodeTransition' + Type OperationType `json:"Type,omitempty"` +} + +// PackageSharingPolicyInfo represents a policy for the package sharing. +type PackageSharingPolicyInfo struct { + // SharedPackageName - The name of code, configuration or data package that should be shared. + SharedPackageName *string `json:"SharedPackageName,omitempty"` + // PackageSharingScope - Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation. Possible values include: 'PackageSharingPolicyScopeNone', 'PackageSharingPolicyScopeAll', 'PackageSharingPolicyScopeCode', 'PackageSharingPolicyScopeConfig', 'PackageSharingPolicyScopeData' + PackageSharingScope PackageSharingPolicyScope `json:"PackageSharingScope,omitempty"` +} + +// PagedApplicationInfoList the list of applications in the cluster. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedApplicationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of application information. + Items *[]ApplicationInfo `json:"Items,omitempty"` +} + +// PagedApplicationTypeInfoList the list of application types that are provisioned or being provisioned in +// the cluster. The list is paged when all of the results cannot fit in a single message. The next set of +// results can be obtained by executing the same query with the continuation token provided in this list. +type PagedApplicationTypeInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of application type information. + Items *[]ApplicationTypeInfo `json:"Items,omitempty"` +} + +// PagedBackupConfigurationInfoList the list of backup configuration information. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedBackupConfigurationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup configuration information. + Items *[]BasicBackupConfigurationInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedBackupConfigurationInfoList struct. +func (pbcil *PagedBackupConfigurationInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pbcil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicBackupConfigurationInfoArray(*v) + if err != nil { + return err + } + pbcil.Items = &items + } + } + } + + return nil +} + +// PagedBackupEntityList the list of backup entities that are being periodically backed. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedBackupEntityList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup entity information. + Items *[]BasicBackupEntity `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedBackupEntityList struct. +func (pbel *PagedBackupEntityList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pbel.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicBackupEntityArray(*v) + if err != nil { + return err + } + pbel.Items = &items + } + } + } + + return nil +} + +// PagedBackupInfoList the list of backups. The list is paged when all of the results cannot fit in a +// single message. The next set of results can be obtained by executing the same query with the +// continuation token provided in this list. +type PagedBackupInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup information. + Items *[]BackupInfo `json:"Items,omitempty"` +} + +// PagedBackupPolicyDescriptionList the list of backup policies configured in the cluster. The list is +// paged when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedBackupPolicyDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - The list of backup policies information. + Items *[]BackupPolicyDescription `json:"Items,omitempty"` +} + +// PagedComposeDeploymentStatusInfoList the list of compose deployments in the cluster. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedComposeDeploymentStatusInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of compose deployment status information. + Items *[]ComposeDeploymentStatusInfo `json:"Items,omitempty"` +} + +// PagedDeployedApplicationInfoList the list of deployed applications in activating, downloading, or active +// states on a node. +// The list is paged when all of the results cannot fit in a single message. +// The next set of results can be obtained by executing the same query with the continuation token provided +// in this list. +type PagedDeployedApplicationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of deployed application information. + Items *[]DeployedApplicationInfo `json:"Items,omitempty"` +} + +// PagedNodeInfoList the list of nodes in the cluster. The list is paged when all of the results cannot fit +// in a single message. The next set of results can be obtained by executing the same query with the +// continuation token provided in this list. +type PagedNodeInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of node information. + Items *[]NodeInfo `json:"Items,omitempty"` +} + +// PagedPropertyInfoList the paged list of Service Fabric properties under a given name. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedPropertyInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // IsConsistent - Indicates whether any property under the given name has been modified during the enumeration. If there was a modification, this property value is false. + IsConsistent *bool `json:"IsConsistent,omitempty"` + // Properties - List of property information. + Properties *[]PropertyInfo `json:"Properties,omitempty"` +} + +// PagedReplicaInfoList the list of replicas in the cluster for a given partition. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedReplicaInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of replica information. + Items *[]BasicReplicaInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedReplicaInfoList struct. +func (pril *PagedReplicaInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pril.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicReplicaInfoArray(*v) + if err != nil { + return err + } + pril.Items = &items + } + } + } + + return nil +} + +// PagedServiceInfoList the list of services in the cluster for an application. The list is paged when all +// of the results cannot fit in a single message. The next set of results can be obtained by executing the +// same query with the continuation token provided in this list. +type PagedServiceInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service information. + Items *[]BasicServiceInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedServiceInfoList struct. +func (psil *PagedServiceInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + psil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicServiceInfoArray(*v) + if err != nil { + return err + } + psil.Items = &items + } + } + } + + return nil +} + +// PagedServicePartitionInfoList the list of partition in the cluster for a service. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedServicePartitionInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service partition information. + Items *[]BasicServicePartitionInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedServicePartitionInfoList struct. +func (pspil *PagedServicePartitionInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pspil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicServicePartitionInfoArray(*v) + if err != nil { + return err + } + pspil.Items = &items + } + } + } + + return nil +} + +// PagedServiceResourceDescriptionList the list of service resources in the cluster. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedServiceResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service resource description. + Items *[]ServiceResourceDescription `json:"Items,omitempty"` +} + +// PagedServiceResourceReplicaDescriptionList the list of service resources in the cluster. The list is +// paged when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedServiceResourceReplicaDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service resource description. + Items *[]ServiceResourceReplicaDescription `json:"Items,omitempty"` +} + +// PagedSubNameInfoList a paged list of Service Fabric names. The list is paged when all of the results +// cannot fit in a single message. The next set of results can be obtained by executing the same query with +// the continuation token provided in this list. +type PagedSubNameInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // IsConsistent - Indicates whether any name under the given name has been modified during the enumeration. If there was a modification, this property value is false. + IsConsistent *bool `json:"IsConsistent,omitempty"` + // SubNames - List of the child names. + SubNames *[]string `json:"SubNames,omitempty"` +} + +// BasicPartitionAnalysisEvent represents the base for all Partition Analysis Events. +type BasicPartitionAnalysisEvent interface { + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) +} + +// PartitionAnalysisEvent represents the base for all Partition Analysis Events. +type PartitionAnalysisEvent struct { + // Metadata - Metadata about an Analysis Event. + Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionAnalysisEvent(body []byte) (BasicPartitionAnalysisEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + default: + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + } +} +func unmarshalBasicPartitionAnalysisEventArray(body []byte) ([]BasicPartitionAnalysisEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + paeArray := make([]BasicPartitionAnalysisEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pae, err := unmarshalBasicPartitionAnalysisEvent(*rawMessage) + if err != nil { + return nil, err + } + paeArray[index] = pae + } + return paeArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) MarshalJSON() ([]byte, error) { + pae.Kind = KindPartitionAnalysisEvent + objectMap := make(map[string]interface{}) + if pae.Metadata != nil { + objectMap["Metadata"] = pae.Metadata + } + if pae.PartitionID != nil { + objectMap["PartitionId"] = pae.PartitionID + } + if pae.EventInstanceID != nil { + objectMap["EventInstanceId"] = pae.EventInstanceID + } + if pae.TimeStamp != nil { + objectMap["TimeStamp"] = pae.TimeStamp + } + if pae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = pae.HasCorrelatedEvents + } + if pae.Kind != "" { + objectMap["Kind"] = pae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return &pae, true +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return &pae, true +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &pae, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &pae, true +} + +// PartitionBackupConfigurationInfo backup configuration information, for a specific partition, specifying +// what backup policy is being applied and suspend description, if any. +type PartitionBackupConfigurationInfo struct { + autorest.Response `json:"-"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + pbci.Kind = KindBasicBackupConfigurationInfoKindPartition + objectMap := make(map[string]interface{}) + if pbci.ServiceName != nil { + objectMap["ServiceName"] = pbci.ServiceName + } + if pbci.PartitionID != nil { + objectMap["PartitionId"] = pbci.PartitionID + } + if pbci.PolicyName != nil { + objectMap["PolicyName"] = pbci.PolicyName + } + if pbci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = pbci.PolicyInheritedFrom + } + if pbci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = pbci.SuspensionInfo + } + if pbci.Kind != "" { + objectMap["Kind"] = pbci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return &pbci, true +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &pbci, true +} + +// PartitionBackupEntity identifies the Service Fabric stateful partition which is being backed up. +type PartitionBackupEntity struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionBackupEntity. +func (pbe PartitionBackupEntity) MarshalJSON() ([]byte, error) { + pbe.EntityKind = EntityKindPartition1 + objectMap := make(map[string]interface{}) + if pbe.ServiceName != nil { + objectMap["ServiceName"] = pbe.ServiceName + } + if pbe.PartitionID != nil { + objectMap["PartitionId"] = pbe.PartitionID + } + if pbe.EntityKind != "" { + objectMap["EntityKind"] = pbe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return &pbe, true +} + +// AsBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &pbe, true +} + +// PartitionDataLossProgress information about a partition data loss user-induced operation. +type PartitionDataLossProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // InvokeDataLossResult - Represents information about an operation in a terminal state (Completed or Faulted). + InvokeDataLossResult *InvokeDataLossResult `json:"InvokeDataLossResult,omitempty"` +} + +// BasicPartitionEvent represents the base for all Partition Events. +type BasicPartitionEvent interface { + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) + AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) + AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) + AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) + AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) + AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) + AsPartitionEvent() (*PartitionEvent, bool) +} + +// PartitionEvent represents the base for all Partition Events. +type PartitionEvent struct { + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionEvent(body []byte) (BasicPartitionEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionAnalysisEvent): + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + case string(KindPartitionHealthReportCreated): + var phrce PartitionHealthReportCreatedEvent + err := json.Unmarshal(body, &phrce) + return phrce, err + case string(KindPartitionHealthReportExpired): + var phree PartitionHealthReportExpiredEvent + err := json.Unmarshal(body, &phree) + return phree, err + case string(KindPartitionReconfigurationCompleted): + var prce PartitionReconfigurationCompletedEvent + err := json.Unmarshal(body, &prce) + return prce, err + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + case string(KindChaosMoveSecondaryFaultScheduled): + var cmsfse ChaosMoveSecondaryFaultScheduledEvent + err := json.Unmarshal(body, &cmsfse) + return cmsfse, err + case string(KindChaosMovePrimaryFaultScheduled): + var cmpfse ChaosMovePrimaryFaultScheduledEvent + err := json.Unmarshal(body, &cmpfse) + return cmpfse, err + default: + var peVar PartitionEvent + err := json.Unmarshal(body, &peVar) + return peVar, err + } +} +func unmarshalBasicPartitionEventArray(body []byte) ([]BasicPartitionEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + peVarArray := make([]BasicPartitionEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + peVar, err := unmarshalBasicPartitionEvent(*rawMessage) + if err != nil { + return nil, err + } + peVarArray[index] = peVar + } + return peVarArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionEvent. +func (peVar PartitionEvent) MarshalJSON() ([]byte, error) { + peVar.Kind = KindPartitionEvent + objectMap := make(map[string]interface{}) + if peVar.PartitionID != nil { + objectMap["PartitionId"] = peVar.PartitionID + } + if peVar.EventInstanceID != nil { + objectMap["EventInstanceId"] = peVar.EventInstanceID + } + if peVar.TimeStamp != nil { + objectMap["TimeStamp"] = peVar.TimeStamp + } + if peVar.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = peVar.HasCorrelatedEvents + } + if peVar.Kind != "" { + objectMap["Kind"] = peVar.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return &peVar, true +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &peVar, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &peVar, true +} + +// PartitionHealth information about the health of a Service Fabric partition. +type PartitionHealth struct { + autorest.Response `json:"-"` + // PartitionID - ID of the partition whose health information is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaHealthStates - The list of replica health states associated with the partition. + ReplicaHealthStates *[]BasicReplicaHealthState `json:"ReplicaHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PartitionHealth struct. +func (ph *PartitionHealth) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "PartitionId": + if v != nil { + var partitionID uuid.UUID + err = json.Unmarshal(*v, &partitionID) + if err != nil { + return err + } + ph.PartitionID = &partitionID + } + case "ReplicaHealthStates": + if v != nil { + replicaHealthStates, err := unmarshalBasicReplicaHealthStateArray(*v) + if err != nil { + return err + } + ph.ReplicaHealthStates = &replicaHealthStates + } + case "AggregatedHealthState": + if v != nil { + var aggregatedHealthState HealthState + err = json.Unmarshal(*v, &aggregatedHealthState) + if err != nil { + return err + } + ph.AggregatedHealthState = aggregatedHealthState + } + case "HealthEvents": + if v != nil { + var healthEvents []HealthEvent + err = json.Unmarshal(*v, &healthEvents) + if err != nil { + return err + } + ph.HealthEvents = &healthEvents + } + case "UnhealthyEvaluations": + if v != nil { + var unhealthyEvaluations []HealthEvaluationWrapper + err = json.Unmarshal(*v, &unhealthyEvaluations) + if err != nil { + return err + } + ph.UnhealthyEvaluations = &unhealthyEvaluations + } + case "HealthStatistics": + if v != nil { + var healthStatistics HealthStatistics + err = json.Unmarshal(*v, &healthStatistics) + if err != nil { + return err + } + ph.HealthStatistics = &healthStatistics + } + } + } + + return nil +} + +// PartitionHealthEvaluation represents health evaluation for a partition, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type PartitionHealthEvaluation struct { + // PartitionID - Id of the partition whose health evaluation is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the partition. The types of the unhealthy evaluations can be ReplicasHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) MarshalJSON() ([]byte, error) { + phe.Kind = KindPartition + objectMap := make(map[string]interface{}) + if phe.PartitionID != nil { + objectMap["PartitionId"] = phe.PartitionID + } + if phe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations + } + if phe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = phe.AggregatedHealthState + } + if phe.Description != nil { + objectMap["Description"] = phe.Description + } + if phe.Kind != "" { + objectMap["Kind"] = phe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return &phe, true +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &phe, true +} + +// PartitionHealthReportCreatedEvent partition Health Report Created event. +type PartitionHealthReportCreatedEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + phrce.Kind = KindPartitionHealthReportCreated + objectMap := make(map[string]interface{}) + if phrce.SourceID != nil { + objectMap["SourceId"] = phrce.SourceID + } + if phrce.Property != nil { + objectMap["Property"] = phrce.Property + } + if phrce.HealthState != nil { + objectMap["HealthState"] = phrce.HealthState + } + if phrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = phrce.TimeToLiveMs + } + if phrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = phrce.SequenceNumber + } + if phrce.Description != nil { + objectMap["Description"] = phrce.Description + } + if phrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = phrce.RemoveWhenExpired + } + if phrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = phrce.SourceUtcTimestamp + } + if phrce.PartitionID != nil { + objectMap["PartitionId"] = phrce.PartitionID + } + if phrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = phrce.EventInstanceID + } + if phrce.TimeStamp != nil { + objectMap["TimeStamp"] = phrce.TimeStamp + } + if phrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = phrce.HasCorrelatedEvents + } + if phrce.Kind != "" { + objectMap["Kind"] = phrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &phrce, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return &phrce, true +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportCreatedEvent. +func (phrce PartitionHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &phrce, true +} + +// PartitionHealthReportExpiredEvent partition Health Report Expired event. +type PartitionHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + phree.Kind = KindPartitionHealthReportExpired + objectMap := make(map[string]interface{}) + if phree.SourceID != nil { + objectMap["SourceId"] = phree.SourceID + } + if phree.Property != nil { + objectMap["Property"] = phree.Property + } + if phree.HealthState != nil { + objectMap["HealthState"] = phree.HealthState + } + if phree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = phree.TimeToLiveMs + } + if phree.SequenceNumber != nil { + objectMap["SequenceNumber"] = phree.SequenceNumber + } + if phree.Description != nil { + objectMap["Description"] = phree.Description + } + if phree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = phree.RemoveWhenExpired + } + if phree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = phree.SourceUtcTimestamp + } + if phree.PartitionID != nil { + objectMap["PartitionId"] = phree.PartitionID + } + if phree.EventInstanceID != nil { + objectMap["EventInstanceId"] = phree.EventInstanceID + } + if phree.TimeStamp != nil { + objectMap["TimeStamp"] = phree.TimeStamp + } + if phree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = phree.HasCorrelatedEvents + } + if phree.Kind != "" { + objectMap["Kind"] = phree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &phree, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return &phree, true +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &phree, true +} + +// PartitionHealthState represents the health state of a partition, which contains the partition identifier +// and its aggregated health state. +type PartitionHealthState struct { + // PartitionID - Id of the partition whose health state is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// PartitionHealthStateChunk represents the health state chunk of a partition, which contains the partition +// ID, its aggregated health state and any replicas that respect the filters in the cluster health chunk +// query description. +type PartitionHealthStateChunk struct { + // PartitionID - The Id of the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaHealthStateChunks - The list of replica health state chunks belonging to the partition that respect the filters in the cluster health chunk query description. + ReplicaHealthStateChunks *ReplicaHealthStateChunkList `json:"ReplicaHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// PartitionHealthStateChunkList the list of partition health state chunks that respect the input filters +// in the chunk query description. +// Returned by get cluster health state chunks query as part of the parent application hierarchy. +type PartitionHealthStateChunkList struct { + // Items - The list of partition health state chunks that respect the input filters in the chunk query. + Items *[]PartitionHealthStateChunk `json:"Items,omitempty"` +} + +// PartitionHealthStateFilter defines matching criteria to determine whether a partition should be included +// as a child of a service in the cluster health chunk. +// The partitions are only returned if the parent entities match a filter specified in the cluster health +// chunk query description. The parent service and application must be included in the cluster health +// chunk. +// One filter can match zero, one or multiple partitions, depending on its properties. +type PartitionHealthStateFilter struct { + // PartitionIDFilter - ID of the partition that matches the filter. The filter is applied only to the specified partition, if it exists. + // If the partition doesn't exist, no partition is returned in the cluster health chunk based on this filter. + // If the partition exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all partitions that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + PartitionIDFilter *uuid.UUID `json:"PartitionIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the partitions. It allows selecting partitions if they match the desired health states. + // The possible values are integer value of one of the following health states. Only partitions that match the filter are returned. All partitions are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the partition ID is specified. If the filter has default value and partition ID is specified, the matching partition is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches partitions with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // ReplicaFilters - Defines a list of filters that specify which replicas to be included in the returned cluster health chunk as children of the parent partition. The replicas are returned only if the parent partition matches a filter. + // If the list is empty, no replicas are returned. All the replicas are used to evaluate the parent partition aggregated health state, regardless of the input filters. + // The partition filter may specify multiple replica filters. + // For example, it can specify a filter to return all replicas with health state Error and another filter to always include a replica identified by its replica id. + ReplicaFilters *[]ReplicaHealthStateFilter `json:"ReplicaFilters,omitempty"` +} + +// BasicPartitionInformation information about the partition identity, partitioning scheme and keys supported by it. +type BasicPartitionInformation interface { + AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) + AsNamedPartitionInformation() (*NamedPartitionInformation, bool) + AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) + AsPartitionInformation() (*PartitionInformation, bool) +} + +// PartitionInformation information about the partition identity, partitioning scheme and keys supported by it. +type PartitionInformation struct { + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +func unmarshalBasicPartitionInformation(body []byte) (BasicPartitionInformation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServicePartitionKind"] { + case string(ServicePartitionKindInt64Range1): + var i6rpi Int64RangePartitionInformation + err := json.Unmarshal(body, &i6rpi) + return i6rpi, err + case string(ServicePartitionKindNamed1): + var npi NamedPartitionInformation + err := json.Unmarshal(body, &npi) + return npi, err + case string(ServicePartitionKindSingleton1): + var spi SingletonPartitionInformation + err := json.Unmarshal(body, &spi) + return spi, err + default: + var pi PartitionInformation + err := json.Unmarshal(body, &pi) + return pi, err + } +} +func unmarshalBasicPartitionInformationArray(body []byte) ([]BasicPartitionInformation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + piArray := make([]BasicPartitionInformation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pi, err := unmarshalBasicPartitionInformation(*rawMessage) + if err != nil { + return nil, err + } + piArray[index] = pi + } + return piArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionInformation. +func (pi PartitionInformation) MarshalJSON() ([]byte, error) { + pi.ServicePartitionKind = ServicePartitionKindPartitionInformation + objectMap := make(map[string]interface{}) + if pi.ID != nil { + objectMap["Id"] = pi.ID + } + if pi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = pi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return &pi, true +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &pi, true +} + +// PartitionInstanceCountScaleMechanism represents a scaling mechanism for adding or removing instances of +// stateless service partition. +type PartitionInstanceCountScaleMechanism struct { + // MinInstanceCount - Minimum number of instances of the partition. + MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"` + // MaxInstanceCount - Maximum number of instances of the partition. + MaxInstanceCount *int32 `json:"MaxInstanceCount,omitempty"` + // ScaleIncrement - The number of instances to add or remove during a scaling operation. + ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"` + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) MarshalJSON() ([]byte, error) { + picsm.Kind = KindPartitionInstanceCount + objectMap := make(map[string]interface{}) + if picsm.MinInstanceCount != nil { + objectMap["MinInstanceCount"] = picsm.MinInstanceCount + } + if picsm.MaxInstanceCount != nil { + objectMap["MaxInstanceCount"] = picsm.MaxInstanceCount + } + if picsm.ScaleIncrement != nil { + objectMap["ScaleIncrement"] = picsm.ScaleIncrement + } + if picsm.Kind != "" { + objectMap["Kind"] = picsm.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return &picsm, true +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return nil, false +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return nil, false +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &picsm, true +} + +// PartitionLoadInformation represents load information for a partition, which contains the primary and +// secondary reported load metrics. +// In case there is no load reported, PartitionLoadInformation will contain the default load for the +// service of the partition. +// For default loads, LoadMetricReport's LastReportedUtc is set to 0. +type PartitionLoadInformation struct { + autorest.Response `json:"-"` + // PartitionID - Id of the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // PrimaryLoadMetricReports - Array of load reports from the primary replica for this partition. + PrimaryLoadMetricReports *[]LoadMetricReport `json:"PrimaryLoadMetricReports,omitempty"` + // SecondaryLoadMetricReports - Array of aggregated load reports from all secondary replicas for this partition. + // Array only contains the latest reported load for each metric. + SecondaryLoadMetricReports *[]LoadMetricReport `json:"SecondaryLoadMetricReports,omitempty"` +} + +// PartitionPrimaryMoveAnalysisEvent partition Primary Move Analysis event. +type PartitionPrimaryMoveAnalysisEvent struct { + // WhenMoveCompleted - Time when the move was completed. + WhenMoveCompleted *date.Time `json:"WhenMoveCompleted,omitempty"` + // PreviousNode - The name of a Service Fabric node. + PreviousNode *string `json:"PreviousNode,omitempty"` + // CurrentNode - The name of a Service Fabric node. + CurrentNode *string `json:"CurrentNode,omitempty"` + // MoveReason - Move reason. + MoveReason *string `json:"MoveReason,omitempty"` + // RelevantTraces - Relevant traces. + RelevantTraces *string `json:"RelevantTraces,omitempty"` + // Metadata - Metadata about an Analysis Event. + Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) MarshalJSON() ([]byte, error) { + ppmae.Kind = KindPartitionPrimaryMoveAnalysis + objectMap := make(map[string]interface{}) + if ppmae.WhenMoveCompleted != nil { + objectMap["WhenMoveCompleted"] = ppmae.WhenMoveCompleted + } + if ppmae.PreviousNode != nil { + objectMap["PreviousNode"] = ppmae.PreviousNode + } + if ppmae.CurrentNode != nil { + objectMap["CurrentNode"] = ppmae.CurrentNode + } + if ppmae.MoveReason != nil { + objectMap["MoveReason"] = ppmae.MoveReason + } + if ppmae.RelevantTraces != nil { + objectMap["RelevantTraces"] = ppmae.RelevantTraces + } + if ppmae.Metadata != nil { + objectMap["Metadata"] = ppmae.Metadata + } + if ppmae.PartitionID != nil { + objectMap["PartitionId"] = ppmae.PartitionID + } + if ppmae.EventInstanceID != nil { + objectMap["EventInstanceId"] = ppmae.EventInstanceID + } + if ppmae.TimeStamp != nil { + objectMap["TimeStamp"] = ppmae.TimeStamp + } + if ppmae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ppmae.HasCorrelatedEvents + } + if ppmae.Kind != "" { + objectMap["Kind"] = ppmae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return &ppmae, true +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &ppmae, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return &ppmae, true +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ppmae, true +} + +// PartitionQuorumLossProgress information about a partition quorum loss user-induced operation. +type PartitionQuorumLossProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // InvokeQuorumLossResult - Represents information about an operation in a terminal state (Completed or Faulted). + InvokeQuorumLossResult *InvokeQuorumLossResult `json:"InvokeQuorumLossResult,omitempty"` +} + +// PartitionReconfigurationCompletedEvent partition Reconfiguration Completed event. +type PartitionReconfigurationCompletedEvent struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // NodeInstanceID - Id of Node instance. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` + // ServiceType - Type of Service. + ServiceType *string `json:"ServiceType,omitempty"` + // CcEpochDataLossVersion - CcEpochDataLoss version. + CcEpochDataLossVersion *int64 `json:"CcEpochDataLossVersion,omitempty"` + // CcEpochConfigVersion - CcEpochConfig version. + CcEpochConfigVersion *int64 `json:"CcEpochConfigVersion,omitempty"` + // ReconfigType - Type of reconfiguration. + ReconfigType *string `json:"ReconfigType,omitempty"` + // Result - Describes reconfiguration result. + Result *string `json:"Result,omitempty"` + // Phase0DurationMs - Duration of Phase0 in milli-seconds. + Phase0DurationMs *float64 `json:"Phase0DurationMs,omitempty"` + // Phase1DurationMs - Duration of Phase1 in milli-seconds. + Phase1DurationMs *float64 `json:"Phase1DurationMs,omitempty"` + // Phase2DurationMs - Duration of Phase2 in milli-seconds. + Phase2DurationMs *float64 `json:"Phase2DurationMs,omitempty"` + // Phase3DurationMs - Duration of Phase3 in milli-seconds. + Phase3DurationMs *float64 `json:"Phase3DurationMs,omitempty"` + // Phase4DurationMs - Duration of Phase4 in milli-seconds. + Phase4DurationMs *float64 `json:"Phase4DurationMs,omitempty"` + // TotalDurationMs - Total duration in milli-seconds. + TotalDurationMs *float64 `json:"TotalDurationMs,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) MarshalJSON() ([]byte, error) { + prce.Kind = KindPartitionReconfigurationCompleted + objectMap := make(map[string]interface{}) + if prce.NodeName != nil { + objectMap["NodeName"] = prce.NodeName + } + if prce.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = prce.NodeInstanceID + } + if prce.ServiceType != nil { + objectMap["ServiceType"] = prce.ServiceType + } + if prce.CcEpochDataLossVersion != nil { + objectMap["CcEpochDataLossVersion"] = prce.CcEpochDataLossVersion + } + if prce.CcEpochConfigVersion != nil { + objectMap["CcEpochConfigVersion"] = prce.CcEpochConfigVersion + } + if prce.ReconfigType != nil { + objectMap["ReconfigType"] = prce.ReconfigType + } + if prce.Result != nil { + objectMap["Result"] = prce.Result + } + if prce.Phase0DurationMs != nil { + objectMap["Phase0DurationMs"] = prce.Phase0DurationMs + } + if prce.Phase1DurationMs != nil { + objectMap["Phase1DurationMs"] = prce.Phase1DurationMs + } + if prce.Phase2DurationMs != nil { + objectMap["Phase2DurationMs"] = prce.Phase2DurationMs + } + if prce.Phase3DurationMs != nil { + objectMap["Phase3DurationMs"] = prce.Phase3DurationMs + } + if prce.Phase4DurationMs != nil { + objectMap["Phase4DurationMs"] = prce.Phase4DurationMs + } + if prce.TotalDurationMs != nil { + objectMap["TotalDurationMs"] = prce.TotalDurationMs + } + if prce.PartitionID != nil { + objectMap["PartitionId"] = prce.PartitionID + } + if prce.EventInstanceID != nil { + objectMap["EventInstanceId"] = prce.EventInstanceID + } + if prce.TimeStamp != nil { + objectMap["TimeStamp"] = prce.TimeStamp + } + if prce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = prce.HasCorrelatedEvents + } + if prce.Kind != "" { + objectMap["Kind"] = prce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &prce, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return &prce, true +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionReconfigurationCompletedEvent. +func (prce PartitionReconfigurationCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &prce, true +} + +// PartitionRestartProgress information about a partition restart user-induced operation. +type PartitionRestartProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // RestartPartitionResult - Represents information about an operation in a terminal state (Completed or Faulted). + RestartPartitionResult *RestartPartitionResult `json:"RestartPartitionResult,omitempty"` +} + +// BasicPartitionSafetyCheck represents a safety check for the service partition being performed by service fabric +// before continuing with operations. +type BasicPartitionSafetyCheck interface { + AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) + AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) + AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) + AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) + AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) + AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) + AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) +} + +// PartitionSafetyCheck represents a safety check for the service partition being performed by service fabric +// before continuing with operations. +type PartitionSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionSafetyCheck(body []byte) (BasicPartitionSafetyCheck, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindEnsureAvailability): + var easc EnsureAvailabilitySafetyCheck + err := json.Unmarshal(body, &easc) + return easc, err + case string(KindEnsurePartitionQuorum): + var epqsc EnsurePartitionQurumSafetyCheck + err := json.Unmarshal(body, &epqsc) + return epqsc, err + case string(KindWaitForInbuildReplica): + var wfirsc WaitForInbuildReplicaSafetyCheck + err := json.Unmarshal(body, &wfirsc) + return wfirsc, err + case string(KindWaitForPrimaryPlacement): + var wfppsc WaitForPrimaryPlacementSafetyCheck + err := json.Unmarshal(body, &wfppsc) + return wfppsc, err + case string(KindWaitForPrimarySwap): + var wfpssc WaitForPrimarySwapSafetyCheck + err := json.Unmarshal(body, &wfpssc) + return wfpssc, err + case string(KindWaitForReconfiguration): + var wfrsc WaitForReconfigurationSafetyCheck + err := json.Unmarshal(body, &wfrsc) + return wfrsc, err + default: + var psc PartitionSafetyCheck + err := json.Unmarshal(body, &psc) + return psc, err + } +} +func unmarshalBasicPartitionSafetyCheckArray(body []byte) ([]BasicPartitionSafetyCheck, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pscArray := make([]BasicPartitionSafetyCheck, len(rawMessages)) + + for index, rawMessage := range rawMessages { + psc, err := unmarshalBasicPartitionSafetyCheck(*rawMessage) + if err != nil { + return nil, err + } + pscArray[index] = psc + } + return pscArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) MarshalJSON() ([]byte, error) { + psc.Kind = KindPartitionSafetyCheck + objectMap := make(map[string]interface{}) + if psc.PartitionID != nil { + objectMap["PartitionId"] = psc.PartitionID + } + if psc.Kind != "" { + objectMap["Kind"] = psc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return &psc, true +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &psc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &psc, true +} + +// BasicPartitionSchemeDescription describes how the service is partitioned. +type BasicPartitionSchemeDescription interface { + AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) + AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) + AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) + AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) +} + +// PartitionSchemeDescription describes how the service is partitioned. +type PartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["PartitionScheme"] { + case string(PartitionSchemeNamed1): + var npsd NamedPartitionSchemeDescription + err := json.Unmarshal(body, &npsd) + return npsd, err + case string(PartitionSchemeSingleton1): + var spsd SingletonPartitionSchemeDescription + err := json.Unmarshal(body, &spsd) + return spsd, err + case string(PartitionSchemeUniformInt64Range1): + var ui6rpsd UniformInt64RangePartitionSchemeDescription + err := json.Unmarshal(body, &ui6rpsd) + return ui6rpsd, err + default: + var psd PartitionSchemeDescription + err := json.Unmarshal(body, &psd) + return psd, err + } +} +func unmarshalBasicPartitionSchemeDescriptionArray(body []byte) ([]BasicPartitionSchemeDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + psdArray := make([]BasicPartitionSchemeDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + psd, err := unmarshalBasicPartitionSchemeDescription(*rawMessage) + if err != nil { + return nil, err + } + psdArray[index] = psd + } + return psdArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) { + psd.PartitionScheme = PartitionSchemePartitionSchemeDescription + objectMap := make(map[string]interface{}) + if psd.PartitionScheme != "" { + objectMap["PartitionScheme"] = psd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return &psd, true +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &psd, true +} + +// PartitionsHealthEvaluation represents health evaluation for the partitions of a service, containing +// health evaluations for each unhealthy partition that impacts current aggregated health state. Can be +// returned when evaluating service health and the aggregated health state is either Error or Warning. +type PartitionsHealthEvaluation struct { + // MaxPercentUnhealthyPartitionsPerService - Maximum allowed percentage of unhealthy partitions per service from the ServiceTypeHealthPolicy. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"` + // TotalCount - Total number of partitions of the service from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy PartitionHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) MarshalJSON() ([]byte, error) { + phe.Kind = KindPartitions + objectMap := make(map[string]interface{}) + if phe.MaxPercentUnhealthyPartitionsPerService != nil { + objectMap["MaxPercentUnhealthyPartitionsPerService"] = phe.MaxPercentUnhealthyPartitionsPerService + } + if phe.TotalCount != nil { + objectMap["TotalCount"] = phe.TotalCount + } + if phe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations + } + if phe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = phe.AggregatedHealthState + } + if phe.Description != nil { + objectMap["Description"] = phe.Description + } + if phe.Kind != "" { + objectMap["Kind"] = phe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return &phe, true +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &phe, true +} + +// PrimaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning +// in a Primary role. +type PrimaryReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the primary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // RemoteReplicators - The status of all the active and idle secondary replicators that the primary is aware of. + RemoteReplicators *[]RemoteReplicatorStatus `json:"RemoteReplicators,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) MarshalJSON() ([]byte, error) { + prs.Kind = KindPrimary + objectMap := make(map[string]interface{}) + if prs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = prs.ReplicationQueueStatus + } + if prs.RemoteReplicators != nil { + objectMap["RemoteReplicators"] = prs.RemoteReplicators + } + if prs.Kind != "" { + objectMap["Kind"] = prs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return &prs, true +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &prs, true +} + +// ProcessDeactivatedEvent process Deactivated event. +type ProcessDeactivatedEvent struct { + // ServiceName - Name of Service. + ServiceName *string `json:"ServiceName,omitempty"` + // ServicePackageName - Name of Service package. + ServicePackageName *string `json:"ServicePackageName,omitempty"` + // ServicePackageActivationID - Activation Id of Service package. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // IsExclusive - Indicates IsExclusive flag. + IsExclusive *bool `json:"IsExclusive,omitempty"` + // CodePackageName - Name of Code package. + CodePackageName *string `json:"CodePackageName,omitempty"` + // EntryPointType - Type of EntryPoint. + EntryPointType *string `json:"EntryPointType,omitempty"` + // ExeName - Name of executable. + ExeName *string `json:"ExeName,omitempty"` + // ProcessID - Process Id. + ProcessID *int64 `json:"ProcessId,omitempty"` + // HostID - Host Id. + HostID *string `json:"HostId,omitempty"` + // ExitCode - Exit code of process. + ExitCode *int64 `json:"ExitCode,omitempty"` + // UnexpectedTermination - Indicates if termination is unexpected. + UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"` + // StartTime - Start time of process. + StartTime *date.Time `json:"StartTime,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) MarshalJSON() ([]byte, error) { + pde.Kind = KindProcessDeactivated + objectMap := make(map[string]interface{}) + if pde.ServiceName != nil { + objectMap["ServiceName"] = pde.ServiceName + } + if pde.ServicePackageName != nil { + objectMap["ServicePackageName"] = pde.ServicePackageName + } + if pde.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = pde.ServicePackageActivationID + } + if pde.IsExclusive != nil { + objectMap["IsExclusive"] = pde.IsExclusive + } + if pde.CodePackageName != nil { + objectMap["CodePackageName"] = pde.CodePackageName + } + if pde.EntryPointType != nil { + objectMap["EntryPointType"] = pde.EntryPointType + } + if pde.ExeName != nil { + objectMap["ExeName"] = pde.ExeName + } + if pde.ProcessID != nil { + objectMap["ProcessId"] = pde.ProcessID + } + if pde.HostID != nil { + objectMap["HostId"] = pde.HostID + } + if pde.ExitCode != nil { + objectMap["ExitCode"] = pde.ExitCode + } + if pde.UnexpectedTermination != nil { + objectMap["UnexpectedTermination"] = pde.UnexpectedTermination + } + if pde.StartTime != nil { + objectMap["StartTime"] = pde.StartTime + } + if pde.ApplicationID != nil { + objectMap["ApplicationId"] = pde.ApplicationID + } + if pde.EventInstanceID != nil { + objectMap["EventInstanceId"] = pde.EventInstanceID + } + if pde.TimeStamp != nil { + objectMap["TimeStamp"] = pde.TimeStamp + } + if pde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = pde.HasCorrelatedEvents + } + if pde.Kind != "" { + objectMap["Kind"] = pde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &pde, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return &pde, true +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ProcessDeactivatedEvent. +func (pde ProcessDeactivatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &pde, true +} + +// PropertyBatchDescriptionList describes a list of property batch operations to be executed. Either all or +// none of the operations will be committed. +type PropertyBatchDescriptionList struct { + // Operations - A list of the property batch operations to be executed. + Operations *[]BasicPropertyBatchOperation `json:"Operations,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyBatchDescriptionList struct. +func (pbdl *PropertyBatchDescriptionList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Operations": + if v != nil { + operations, err := unmarshalBasicPropertyBatchOperationArray(*v) + if err != nil { + return err + } + pbdl.Operations = &operations + } + } + } + + return nil +} + +// BasicPropertyBatchInfo information about the results of a property batch. +type BasicPropertyBatchInfo interface { + AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) + AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) + AsPropertyBatchInfo() (*PropertyBatchInfo, bool) +} + +// PropertyBatchInfo information about the results of a property batch. +type PropertyBatchInfo struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyBatchInfo(body []byte) (BasicPropertyBatchInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindSuccessful): + var spbi SuccessfulPropertyBatchInfo + err := json.Unmarshal(body, &spbi) + return spbi, err + case string(KindFailed): + var fpbi FailedPropertyBatchInfo + err := json.Unmarshal(body, &fpbi) + return fpbi, err + default: + var pbi PropertyBatchInfo + err := json.Unmarshal(body, &pbi) + return pbi, err + } +} +func unmarshalBasicPropertyBatchInfoArray(body []byte) ([]BasicPropertyBatchInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pbiArray := make([]BasicPropertyBatchInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pbi, err := unmarshalBasicPropertyBatchInfo(*rawMessage) + if err != nil { + return nil, err + } + pbiArray[index] = pbi + } + return pbiArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyBatchInfo. +func (pbi PropertyBatchInfo) MarshalJSON() ([]byte, error) { + pbi.Kind = KindPropertyBatchInfo + objectMap := make(map[string]interface{}) + if pbi.Kind != "" { + objectMap["Kind"] = pbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return nil, false +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return nil, false +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return &pbi, true +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &pbi, true +} + +// PropertyBatchInfoModel ... +type PropertyBatchInfoModel struct { + autorest.Response `json:"-"` + Value BasicPropertyBatchInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyBatchInfoModel struct. +func (pbim *PropertyBatchInfoModel) UnmarshalJSON(body []byte) error { + pbi, err := unmarshalBasicPropertyBatchInfo(body) + if err != nil { + return err + } + pbim.Value = pbi + + return nil +} + +// BasicPropertyBatchOperation represents the base type for property operations that can be put into a batch and +// submitted. +type BasicPropertyBatchOperation interface { + AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) + AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) + AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) + AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) + AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) + AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) + AsPropertyBatchOperation() (*PropertyBatchOperation, bool) +} + +// PropertyBatchOperation represents the base type for property operations that can be put into a batch and +// submitted. +type PropertyBatchOperation struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyBatchOperation(body []byte) (BasicPropertyBatchOperation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindCheckExists): + var cepbo CheckExistsPropertyBatchOperation + err := json.Unmarshal(body, &cepbo) + return cepbo, err + case string(KindCheckSequence): + var cspbo CheckSequencePropertyBatchOperation + err := json.Unmarshal(body, &cspbo) + return cspbo, err + case string(KindCheckValue): + var cvpbo CheckValuePropertyBatchOperation + err := json.Unmarshal(body, &cvpbo) + return cvpbo, err + case string(KindDelete): + var dpbo DeletePropertyBatchOperation + err := json.Unmarshal(body, &dpbo) + return dpbo, err + case string(KindGet): + var gpbo GetPropertyBatchOperation + err := json.Unmarshal(body, &gpbo) + return gpbo, err + case string(KindPut): + var ppbo PutPropertyBatchOperation + err := json.Unmarshal(body, &ppbo) + return ppbo, err + default: + var pbo PropertyBatchOperation + err := json.Unmarshal(body, &pbo) + return pbo, err + } +} +func unmarshalBasicPropertyBatchOperationArray(body []byte) ([]BasicPropertyBatchOperation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pboArray := make([]BasicPropertyBatchOperation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pbo, err := unmarshalBasicPropertyBatchOperation(*rawMessage) + if err != nil { + return nil, err + } + pboArray[index] = pbo + } + return pboArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyBatchOperation. +func (pbo PropertyBatchOperation) MarshalJSON() ([]byte, error) { + pbo.Kind = KindPropertyBatchOperation + objectMap := make(map[string]interface{}) + if pbo.PropertyName != nil { + objectMap["PropertyName"] = pbo.PropertyName + } + if pbo.Kind != "" { + objectMap["Kind"] = pbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return &pbo, true +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &pbo, true +} + +// PropertyDescription description of a Service Fabric property. +type PropertyDescription struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyDescription struct. +func (pd *PropertyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + pd.PropertyName = &propertyName + } + case "CustomTypeId": + if v != nil { + var customTypeID string + err = json.Unmarshal(*v, &customTypeID) + if err != nil { + return err + } + pd.CustomTypeID = &customTypeID + } + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + pd.Value = value + } + } + } + + return nil +} + +// PropertyInfo information about a Service Fabric property. +type PropertyInfo struct { + autorest.Response `json:"-"` + // Name - The name of the Service Fabric property. + Name *string `json:"Name,omitempty"` + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // Metadata - The metadata associated with a property, including the property's name. + Metadata *PropertyMetadata `json:"Metadata,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyInfo struct. +func (pi *PropertyInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + pi.Name = &name + } + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + pi.Value = value + } + case "Metadata": + if v != nil { + var metadata PropertyMetadata + err = json.Unmarshal(*v, &metadata) + if err != nil { + return err + } + pi.Metadata = &metadata + } + } + } + + return nil +} + +// PropertyMetadata the metadata associated with a property, including the property's name. +type PropertyMetadata struct { + // TypeID - The kind of property, determined by the type of data. Following are the possible values. Possible values include: 'PropertyValueKindInvalid', 'PropertyValueKindBinary', 'PropertyValueKindInt64', 'PropertyValueKindDouble', 'PropertyValueKindString', 'PropertyValueKindGUID' + TypeID PropertyValueKind `json:"TypeId,omitempty"` + // CustomTypeID - The property's custom type ID. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // Parent - The name of the parent Service Fabric Name for the property. It could be thought of as the name-space/table under which the property exists. + Parent *string `json:"Parent,omitempty"` + // SizeInBytes - The length of the serialized property value. + SizeInBytes *int32 `json:"SizeInBytes,omitempty"` + // LastModifiedUtcTimestamp - Represents when the Property was last modified. Only write operations will cause this field to be updated. + LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"` + // SequenceNumber - The version of the property. Every time a property is modified, its sequence number is increased. + SequenceNumber *string `json:"SequenceNumber,omitempty"` +} + +// BasicPropertyValue describes a Service Fabric property value. +type BasicPropertyValue interface { + AsBinaryPropertyValue() (*BinaryPropertyValue, bool) + AsInt64PropertyValue() (*Int64PropertyValue, bool) + AsDoublePropertyValue() (*DoublePropertyValue, bool) + AsStringPropertyValue() (*StringPropertyValue, bool) + AsGUIDPropertyValue() (*GUIDPropertyValue, bool) + AsPropertyValue() (*PropertyValue, bool) +} + +// PropertyValue describes a Service Fabric property value. +type PropertyValue struct { + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyValue(body []byte) (BasicPropertyValue, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBinary): + var bpv BinaryPropertyValue + err := json.Unmarshal(body, &bpv) + return bpv, err + case string(KindInt64): + var i6pv Int64PropertyValue + err := json.Unmarshal(body, &i6pv) + return i6pv, err + case string(KindDouble): + var dpv DoublePropertyValue + err := json.Unmarshal(body, &dpv) + return dpv, err + case string(KindString): + var spv StringPropertyValue + err := json.Unmarshal(body, &spv) + return spv, err + case string(KindGUID): + var gpv GUIDPropertyValue + err := json.Unmarshal(body, &gpv) + return gpv, err + default: + var pv PropertyValue + err := json.Unmarshal(body, &pv) + return pv, err + } +} +func unmarshalBasicPropertyValueArray(body []byte) ([]BasicPropertyValue, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pvArray := make([]BasicPropertyValue, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pv, err := unmarshalBasicPropertyValue(*rawMessage) + if err != nil { + return nil, err + } + pvArray[index] = pv + } + return pvArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyValue. +func (pv PropertyValue) MarshalJSON() ([]byte, error) { + pv.Kind = KindPropertyValue + objectMap := make(map[string]interface{}) + if pv.Kind != "" { + objectMap["Kind"] = pv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return &pv, true +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &pv, true +} + +// ProvisionApplicationTypeDescription describes the operation to register or provision an application type +// using an application package uploaded to the Service Fabric image store. +type ProvisionApplicationTypeDescription struct { + // ApplicationTypeBuildPath - The relative path for the application package in the image store specified during the prior upload operation. + ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"` + // ApplicationPackageCleanupPolicy - The kind of action that needs to be taken for cleaning up the application package after successful provision. Possible values include: 'ApplicationPackageCleanupPolicyInvalid', 'ApplicationPackageCleanupPolicyDefault', 'ApplicationPackageCleanupPolicyAutomatic', 'ApplicationPackageCleanupPolicyManual' + ApplicationPackageCleanupPolicy ApplicationPackageCleanupPolicy `json:"ApplicationPackageCleanupPolicy,omitempty"` + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) { + patd.Kind = KindImageStorePath + objectMap := make(map[string]interface{}) + if patd.ApplicationTypeBuildPath != nil { + objectMap["ApplicationTypeBuildPath"] = patd.ApplicationTypeBuildPath + } + if patd.ApplicationPackageCleanupPolicy != "" { + objectMap["ApplicationPackageCleanupPolicy"] = patd.ApplicationPackageCleanupPolicy + } + if patd.Async != nil { + objectMap["Async"] = patd.Async + } + if patd.Kind != "" { + objectMap["Kind"] = patd.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return &patd, true +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return nil, false +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &patd, true +} + +// BasicProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if the +// operation needs to be asynchronous or not. Supported types of provision operations are from either image store or +// external store. +type BasicProvisionApplicationTypeDescriptionBase interface { + AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) + AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) + AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) +} + +// ProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if +// the operation needs to be asynchronous or not. Supported types of provision operations are from either image +// store or external store. +type ProvisionApplicationTypeDescriptionBase struct { + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicProvisionApplicationTypeDescriptionBase(body []byte) (BasicProvisionApplicationTypeDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindImageStorePath): + var patd ProvisionApplicationTypeDescription + err := json.Unmarshal(body, &patd) + return patd, err + case string(KindExternalStore): + var espatd ExternalStoreProvisionApplicationTypeDescription + err := json.Unmarshal(body, &espatd) + return espatd, err + default: + var patdb ProvisionApplicationTypeDescriptionBase + err := json.Unmarshal(body, &patdb) + return patdb, err + } +} +func unmarshalBasicProvisionApplicationTypeDescriptionBaseArray(body []byte) ([]BasicProvisionApplicationTypeDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + patdbArray := make([]BasicProvisionApplicationTypeDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + patdb, err := unmarshalBasicProvisionApplicationTypeDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + patdbArray[index] = patdb + } + return patdbArray, nil +} + +// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) MarshalJSON() ([]byte, error) { + patdb.Kind = KindProvisionApplicationTypeDescriptionBase + objectMap := make(map[string]interface{}) + if patdb.Async != nil { + objectMap["Async"] = patdb.Async + } + if patdb.Kind != "" { + objectMap["Kind"] = patdb.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return &patdb, true +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &patdb, true +} + +// ProvisionFabricDescription describes the parameters for provisioning a cluster. +type ProvisionFabricDescription struct { + // CodeFilePath - The cluster code package file path. + CodeFilePath *string `json:"CodeFilePath,omitempty"` + // ClusterManifestFilePath - The cluster manifest file path. + ClusterManifestFilePath *string `json:"ClusterManifestFilePath,omitempty"` +} + +// PutPropertyBatchOperation puts the specified property under the specified name. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type PutPropertyBatchOperation struct { + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) MarshalJSON() ([]byte, error) { + ppbo.Kind = KindPut + objectMap := make(map[string]interface{}) + objectMap["Value"] = ppbo.Value + if ppbo.CustomTypeID != nil { + objectMap["CustomTypeId"] = ppbo.CustomTypeID + } + if ppbo.PropertyName != nil { + objectMap["PropertyName"] = ppbo.PropertyName + } + if ppbo.Kind != "" { + objectMap["Kind"] = ppbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return &ppbo, true +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &ppbo, true +} + +// UnmarshalJSON is the custom unmarshaler for PutPropertyBatchOperation struct. +func (ppbo *PutPropertyBatchOperation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + ppbo.Value = value + } + case "CustomTypeId": + if v != nil { + var customTypeID string + err = json.Unmarshal(*v, &customTypeID) + if err != nil { + return err + } + ppbo.CustomTypeID = &customTypeID + } + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + ppbo.PropertyName = &propertyName + } + case "Kind": + if v != nil { + var kind KindBasicPropertyBatchOperation + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + ppbo.Kind = kind + } + } + } + + return nil +} + +// ReconfigurationInformation information about current reconfiguration like phase, type, previous +// configuration role of replica and reconfiguration start date time. +type ReconfigurationInformation struct { + // PreviousConfigurationRole - Replica role before reconfiguration started. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + PreviousConfigurationRole ReplicaRole `json:"PreviousConfigurationRole,omitempty"` + // ReconfigurationPhase - Current phase of ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'ReconfigurationPhaseUnknown', 'ReconfigurationPhaseNone', 'ReconfigurationPhasePhase0', 'ReconfigurationPhasePhase1', 'ReconfigurationPhasePhase2', 'ReconfigurationPhasePhase3', 'ReconfigurationPhasePhase4', 'ReconfigurationPhaseAbortPhaseZero' + ReconfigurationPhase ReconfigurationPhase `json:"ReconfigurationPhase,omitempty"` + // ReconfigurationType - Type of current ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'ReconfigurationTypeUnknown', 'ReconfigurationTypeSwapPrimary', 'ReconfigurationTypeFailover', 'ReconfigurationTypeOther' + ReconfigurationType ReconfigurationType `json:"ReconfigurationType,omitempty"` + // ReconfigurationStartTimeUtc - Start time (in UTC) of the ongoing reconfiguration. If no reconfiguration is taking place then this value will be zero date-time. + ReconfigurationStartTimeUtc *date.Time `json:"ReconfigurationStartTimeUtc,omitempty"` +} + +// RegistryCredential credential information to connect to container registry. +type RegistryCredential struct { + // RegistryUserName - The user name to connect to container registry. + RegistryUserName *string `json:"RegistryUserName,omitempty"` + // RegistryPassword - The password for supplied username to connect to container registry. + RegistryPassword *string `json:"RegistryPassword,omitempty"` + // PasswordEncrypted - Indicates that supplied container registry password is encrypted. + PasswordEncrypted *bool `json:"PasswordEncrypted,omitempty"` +} + +// RemoteReplicatorAcknowledgementDetail provides various statistics of the acknowledgements that are being +// received from the remote replicator. +type RemoteReplicatorAcknowledgementDetail struct { + // AverageReceiveDuration - Represents the average duration it takes for the remote replicator to receive an operation. + AverageReceiveDuration *string `json:"AverageReceiveDuration,omitempty"` + // AverageApplyDuration - Represents the average duration it takes for the remote replicator to apply an operation. This usually entails writing the operation to disk. + AverageApplyDuration *string `json:"AverageApplyDuration,omitempty"` + // NotReceivedCount - Represents the number of operations not yet received by a remote replicator. + NotReceivedCount *string `json:"NotReceivedCount,omitempty"` + // ReceivedAndNotAppliedCount - Represents the number of operations received and not yet applied by a remote replicator. + ReceivedAndNotAppliedCount *string `json:"ReceivedAndNotAppliedCount,omitempty"` +} + +// RemoteReplicatorAcknowledgementStatus provides details about the remote replicators from the primary +// replicator's point of view. +type RemoteReplicatorAcknowledgementStatus struct { + // ReplicationStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the replication stream data. + ReplicationStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"ReplicationStreamAcknowledgementDetail,omitempty"` + // CopyStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the copy stream data. + CopyStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"CopyStreamAcknowledgementDetail,omitempty"` +} + +// RemoteReplicatorStatus represents the state of the secondary replicator from the primary replicator’s +// point of view. +type RemoteReplicatorStatus struct { + // ReplicaID - Represents the replica ID of the remote secondary replicator. + ReplicaID *string `json:"ReplicaId,omitempty"` + // LastAcknowledgementProcessedTimeUtc - The last timestamp (in UTC) when an acknowledgement from the secondary replicator was processed on the primary. + // UTC 0 represents an invalid value, indicating that no acknowledgement messages were ever processed. + LastAcknowledgementProcessedTimeUtc *date.Time `json:"LastAcknowledgementProcessedTimeUtc,omitempty"` + // LastReceivedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has received from the primary. + LastReceivedReplicationSequenceNumber *string `json:"LastReceivedReplicationSequenceNumber,omitempty"` + // LastAppliedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has applied to its state. + LastAppliedReplicationSequenceNumber *string `json:"LastAppliedReplicationSequenceNumber,omitempty"` + // IsInBuild - A value that indicates whether the secondary replica is in the process of being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // LastReceivedCopySequenceNumber - The highest copy operation sequence number that the secondary has received from the primary. + // A value of -1 implies that the secondary has received all copy operations. + LastReceivedCopySequenceNumber *string `json:"LastReceivedCopySequenceNumber,omitempty"` + // LastAppliedCopySequenceNumber - The highest copy operation sequence number that the secondary has applied to its state. + // A value of -1 implies that the secondary has applied all copy operations and the copy process is complete. + LastAppliedCopySequenceNumber *string `json:"LastAppliedCopySequenceNumber,omitempty"` + // RemoteReplicatorAcknowledgementStatus - Represents the acknowledgment status for the remote secondary replicator. + RemoteReplicatorAcknowledgementStatus *RemoteReplicatorAcknowledgementStatus `json:"RemoteReplicatorAcknowledgementStatus,omitempty"` +} + +// BasicRepairImpactDescriptionBase describes the expected impact of executing a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type BasicRepairImpactDescriptionBase interface { + AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) + AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) +} + +// RepairImpactDescriptionBase describes the expected impact of executing a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairImpactDescriptionBase struct { + // Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode' + Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicRepairImpactDescriptionBase(body []byte) (BasicRepairImpactDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicRepairImpactDescriptionBaseKindNode): + var nrid NodeRepairImpactDescription + err := json.Unmarshal(body, &nrid) + return nrid, err + default: + var ridb RepairImpactDescriptionBase + err := json.Unmarshal(body, &ridb) + return ridb, err + } +} +func unmarshalBasicRepairImpactDescriptionBaseArray(body []byte) ([]BasicRepairImpactDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ridbArray := make([]BasicRepairImpactDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ridb, err := unmarshalBasicRepairImpactDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + ridbArray[index] = ridb + } + return ridbArray, nil +} + +// MarshalJSON is the custom marshaler for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) MarshalJSON() ([]byte, error) { + ridb.Kind = KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase + objectMap := make(map[string]interface{}) + if ridb.Kind != "" { + objectMap["Kind"] = ridb.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) { + return nil, false +} + +// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) { + return &ridb, true +} + +// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) { + return &ridb, true +} + +// BasicRepairTargetDescriptionBase describes the entities targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type BasicRepairTargetDescriptionBase interface { + AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) + AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) +} + +// RepairTargetDescriptionBase describes the entities targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTargetDescriptionBase struct { + // Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode' + Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicRepairTargetDescriptionBase(body []byte) (BasicRepairTargetDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicRepairTargetDescriptionBaseKindNode): + var nrtd NodeRepairTargetDescription + err := json.Unmarshal(body, &nrtd) + return nrtd, err + default: + var rtdb RepairTargetDescriptionBase + err := json.Unmarshal(body, &rtdb) + return rtdb, err + } +} +func unmarshalBasicRepairTargetDescriptionBaseArray(body []byte) ([]BasicRepairTargetDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rtdbArray := make([]BasicRepairTargetDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rtdb, err := unmarshalBasicRepairTargetDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + rtdbArray[index] = rtdb + } + return rtdbArray, nil +} + +// MarshalJSON is the custom marshaler for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) MarshalJSON() ([]byte, error) { + rtdb.Kind = KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase + objectMap := make(map[string]interface{}) + if rtdb.Kind != "" { + objectMap["Kind"] = rtdb.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) { + return nil, false +} + +// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) { + return &rtdb, true +} + +// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) { + return &rtdb, true +} + +// RepairTask represents a repair task, which includes information about what kind of repair was requested, +// what its progress is, and what its final result was. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTask struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The version of the repair task. + // When creating a new repair task, the version must be set to zero. When updating a repair task, + // the version is used for optimistic concurrency checks. If the version is + // set to zero, the update will not check for write conflicts. If the version is set to a non-zero value, then the + // update will only succeed if the actual current version of the repair task matches this value. + Version *string `json:"Version,omitempty"` + // Description - A description of the purpose of the repair task, or other informational details. + // May be set when the repair task is created, and is immutable once set. + Description *string `json:"Description,omitempty"` + // State - The workflow state of the repair task. Valid initial states are Created, Claimed, and Preparing. Possible values include: 'StateInvalid', 'StateCreated', 'StateClaimed', 'StatePreparing', 'StateApproved', 'StateExecuting', 'StateRestoring', 'StateCompleted' + State State `json:"State,omitempty"` + // Flags - A bitwise-OR of the following values, which gives additional details about the status of the repair task. + // - 1 - Cancellation of the repair has been requested + // - 2 - Abort of the repair has been requested + // - 4 - Approval of the repair was forced via client request + Flags *int32 `json:"Flags,omitempty"` + // Action - The requested repair action. Must be specified when the repair task is created, and is immutable once set. + Action *string `json:"Action,omitempty"` + // Target - The target object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair. + // May be set when the repair task is created, and is immutable once set. + Target BasicRepairTargetDescriptionBase `json:"Target,omitempty"` + // Executor - The name of the repair executor. Must be specified in Claimed and later states, and is immutable once set. + Executor *string `json:"Executor,omitempty"` + // ExecutorData - A data string that the repair executor can use to store its internal state. + ExecutorData *string `json:"ExecutorData,omitempty"` + // Impact - The impact object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair. + // Impact must be specified by the repair executor when transitioning to the Preparing state, and is immutable once set. + Impact BasicRepairImpactDescriptionBase `json:"Impact,omitempty"` + // ResultStatus - A value describing the overall result of the repair task execution. Must be specified in the Restoring and later states, and is immutable once set. Possible values include: 'ResultStatusInvalid', 'ResultStatusSucceeded', 'ResultStatusCancelled', 'ResultStatusInterrupted', 'ResultStatusFailed', 'ResultStatusPending' + ResultStatus ResultStatus `json:"ResultStatus,omitempty"` + // ResultCode - A numeric value providing additional details about the result of the repair task execution. + // May be specified in the Restoring and later states, and is immutable once set. + ResultCode *int32 `json:"ResultCode,omitempty"` + // ResultDetails - A string providing additional details about the result of the repair task execution. + // May be specified in the Restoring and later states, and is immutable once set. + ResultDetails *string `json:"ResultDetails,omitempty"` + // History - An object that contains timestamps of the repair task's state transitions. + // These timestamps are updated by the system, and cannot be directly modified. + History *RepairTaskHistory `json:"History,omitempty"` + // PreparingHealthCheckState - The workflow state of the health check when the repair task is in the Preparing state. Possible values include: 'NotStarted', 'InProgress', 'Succeeded', 'Skipped', 'TimedOut' + PreparingHealthCheckState RepairTaskHealthCheckState `json:"PreparingHealthCheckState,omitempty"` + // RestoringHealthCheckState - The workflow state of the health check when the repair task is in the Restoring state. Possible values include: 'NotStarted', 'InProgress', 'Succeeded', 'Skipped', 'TimedOut' + RestoringHealthCheckState RepairTaskHealthCheckState `json:"RestoringHealthCheckState,omitempty"` + // PerformPreparingHealthCheck - A value to determine if health checks will be performed when the repair task enters the Preparing state. + PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"` + // PerformRestoringHealthCheck - A value to determine if health checks will be performed when the repair task enters the Restoring state. + PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RepairTask struct. +func (rt *RepairTask) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TaskId": + if v != nil { + var taskID string + err = json.Unmarshal(*v, &taskID) + if err != nil { + return err + } + rt.TaskID = &taskID + } + case "Version": + if v != nil { + var version string + err = json.Unmarshal(*v, &version) + if err != nil { + return err + } + rt.Version = &version + } + case "Description": + if v != nil { + var description string + err = json.Unmarshal(*v, &description) + if err != nil { + return err + } + rt.Description = &description + } + case "State": + if v != nil { + var state State + err = json.Unmarshal(*v, &state) + if err != nil { + return err + } + rt.State = state + } + case "Flags": + if v != nil { + var flags int32 + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + rt.Flags = &flags + } + case "Action": + if v != nil { + var action string + err = json.Unmarshal(*v, &action) + if err != nil { + return err + } + rt.Action = &action + } + case "Target": + if v != nil { + target, err := unmarshalBasicRepairTargetDescriptionBase(*v) + if err != nil { + return err + } + rt.Target = target + } + case "Executor": + if v != nil { + var executor string + err = json.Unmarshal(*v, &executor) + if err != nil { + return err + } + rt.Executor = &executor + } + case "ExecutorData": + if v != nil { + var executorData string + err = json.Unmarshal(*v, &executorData) + if err != nil { + return err + } + rt.ExecutorData = &executorData + } + case "Impact": + if v != nil { + impact, err := unmarshalBasicRepairImpactDescriptionBase(*v) + if err != nil { + return err + } + rt.Impact = impact + } + case "ResultStatus": + if v != nil { + var resultStatus ResultStatus + err = json.Unmarshal(*v, &resultStatus) + if err != nil { + return err + } + rt.ResultStatus = resultStatus + } + case "ResultCode": + if v != nil { + var resultCode int32 + err = json.Unmarshal(*v, &resultCode) + if err != nil { + return err + } + rt.ResultCode = &resultCode + } + case "ResultDetails": + if v != nil { + var resultDetails string + err = json.Unmarshal(*v, &resultDetails) + if err != nil { + return err + } + rt.ResultDetails = &resultDetails + } + case "History": + if v != nil { + var history RepairTaskHistory + err = json.Unmarshal(*v, &history) + if err != nil { + return err + } + rt.History = &history + } + case "PreparingHealthCheckState": + if v != nil { + var preparingHealthCheckState RepairTaskHealthCheckState + err = json.Unmarshal(*v, &preparingHealthCheckState) + if err != nil { + return err + } + rt.PreparingHealthCheckState = preparingHealthCheckState + } + case "RestoringHealthCheckState": + if v != nil { + var restoringHealthCheckState RepairTaskHealthCheckState + err = json.Unmarshal(*v, &restoringHealthCheckState) + if err != nil { + return err + } + rt.RestoringHealthCheckState = restoringHealthCheckState + } + case "PerformPreparingHealthCheck": + if v != nil { + var performPreparingHealthCheck bool + err = json.Unmarshal(*v, &performPreparingHealthCheck) + if err != nil { + return err + } + rt.PerformPreparingHealthCheck = &performPreparingHealthCheck + } + case "PerformRestoringHealthCheck": + if v != nil { + var performRestoringHealthCheck bool + err = json.Unmarshal(*v, &performRestoringHealthCheck) + if err != nil { + return err + } + rt.PerformRestoringHealthCheck = &performRestoringHealthCheck + } + } + } + + return nil +} + +// RepairTaskApproveDescription describes a request for forced approval of a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskApproveDescription struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` +} + +// RepairTaskCancelDescription describes a request to cancel a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskCancelDescription struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` + // RequestAbort - _True_ if the repair should be stopped as soon as possible even if it has already started executing. _False_ if the repair should be cancelled only if execution has not yet started. + RequestAbort *bool `json:"RequestAbort,omitempty"` +} + +// RepairTaskDeleteDescription describes a request to delete a completed repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskDeleteDescription struct { + // TaskID - The ID of the completed repair task to be deleted. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` +} + +// RepairTaskHistory a record of the times when the repair task entered each state. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskHistory struct { + // CreatedUtcTimestamp - The time when the repair task entered the Created state. + CreatedUtcTimestamp *date.Time `json:"CreatedUtcTimestamp,omitempty"` + // ClaimedUtcTimestamp - The time when the repair task entered the Claimed state. + ClaimedUtcTimestamp *date.Time `json:"ClaimedUtcTimestamp,omitempty"` + // PreparingUtcTimestamp - The time when the repair task entered the Preparing state. + PreparingUtcTimestamp *date.Time `json:"PreparingUtcTimestamp,omitempty"` + // ApprovedUtcTimestamp - The time when the repair task entered the Approved state + ApprovedUtcTimestamp *date.Time `json:"ApprovedUtcTimestamp,omitempty"` + // ExecutingUtcTimestamp - The time when the repair task entered the Executing state + ExecutingUtcTimestamp *date.Time `json:"ExecutingUtcTimestamp,omitempty"` + // RestoringUtcTimestamp - The time when the repair task entered the Restoring state + RestoringUtcTimestamp *date.Time `json:"RestoringUtcTimestamp,omitempty"` + // CompletedUtcTimestamp - The time when the repair task entered the Completed state + CompletedUtcTimestamp *date.Time `json:"CompletedUtcTimestamp,omitempty"` + // PreparingHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Preparing state. + PreparingHealthCheckStartUtcTimestamp *date.Time `json:"PreparingHealthCheckStartUtcTimestamp,omitempty"` + // PreparingHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Preparing state. + PreparingHealthCheckEndUtcTimestamp *date.Time `json:"PreparingHealthCheckEndUtcTimestamp,omitempty"` + // RestoringHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Restoring state. + RestoringHealthCheckStartUtcTimestamp *date.Time `json:"RestoringHealthCheckStartUtcTimestamp,omitempty"` + // RestoringHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Restoring state. + RestoringHealthCheckEndUtcTimestamp *date.Time `json:"RestoringHealthCheckEndUtcTimestamp,omitempty"` +} + +// RepairTaskUpdateHealthPolicyDescription describes a request to update the health policy of a repair +// task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskUpdateHealthPolicyDescription struct { + // TaskID - The ID of the repair task to be updated. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current value of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` + // PerformPreparingHealthCheck - A boolean indicating if health check is to be performed in the Preparing stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value. + PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"` + // PerformRestoringHealthCheck - A boolean indicating if health check is to be performed in the Restoring stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value. + PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"` +} + +// RepairTaskUpdateInfo describes the result of an operation that created or updated a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskUpdateInfo struct { + autorest.Response `json:"-"` + // Version - The new version of the repair task. + Version *string `json:"Version,omitempty"` +} + +// BasicReplicaEvent represents the base for all Replica Events. +type BasicReplicaEvent interface { + AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) + AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) + AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) + AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) + AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) + AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) + AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) + AsReplicaEvent() (*ReplicaEvent, bool) +} + +// ReplicaEvent represents the base for all Replica Events. +type ReplicaEvent struct { + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicaEvent(body []byte) (BasicReplicaEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindStatefulReplicaHealthReportCreated): + var srhrce StatefulReplicaHealthReportCreatedEvent + err := json.Unmarshal(body, &srhrce) + return srhrce, err + case string(KindStatefulReplicaHealthReportExpired): + var srhree StatefulReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindStatelessReplicaHealthReportCreated): + var srhrce StatelessReplicaHealthReportCreatedEvent + err := json.Unmarshal(body, &srhrce) + return srhrce, err + case string(KindStatelessReplicaHealthReportExpired): + var srhree StatelessReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindChaosRemoveReplicaFaultScheduled): + var crrfse ChaosRemoveReplicaFaultScheduledEvent + err := json.Unmarshal(body, &crrfse) + return crrfse, err + case string(KindChaosRemoveReplicaFaultCompleted): + var crrfce ChaosRemoveReplicaFaultCompletedEvent + err := json.Unmarshal(body, &crrfce) + return crrfce, err + case string(KindChaosRestartReplicaFaultScheduled): + var crrfse ChaosRestartReplicaFaultScheduledEvent + err := json.Unmarshal(body, &crrfse) + return crrfse, err + default: + var re ReplicaEvent + err := json.Unmarshal(body, &re) + return re, err + } +} +func unmarshalBasicReplicaEventArray(body []byte) ([]BasicReplicaEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + reArray := make([]BasicReplicaEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + re, err := unmarshalBasicReplicaEvent(*rawMessage) + if err != nil { + return nil, err + } + reArray[index] = re + } + return reArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaEvent. +func (re ReplicaEvent) MarshalJSON() ([]byte, error) { + re.Kind = KindReplicaEvent + objectMap := make(map[string]interface{}) + if re.PartitionID != nil { + objectMap["PartitionId"] = re.PartitionID + } + if re.ReplicaID != nil { + objectMap["ReplicaId"] = re.ReplicaID + } + if re.EventInstanceID != nil { + objectMap["EventInstanceId"] = re.EventInstanceID + } + if re.TimeStamp != nil { + objectMap["TimeStamp"] = re.TimeStamp + } + if re.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = re.HasCorrelatedEvents + } + if re.Kind != "" { + objectMap["Kind"] = re.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return &re, true +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &re, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &re, true +} + +// BasicReplicaHealth represents a base class for stateful service replica or stateless service instance health. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type BasicReplicaHealth interface { + AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) + AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) + AsReplicaHealth() (*ReplicaHealth, bool) +} + +// ReplicaHealth represents a base class for stateful service replica or stateless service instance health. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type ReplicaHealth struct { + autorest.Response `json:"-"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +func unmarshalBasicReplicaHealth(body []byte) (BasicReplicaHealth, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaHealthServiceKindStateful): + var ssrh StatefulServiceReplicaHealth + err := json.Unmarshal(body, &ssrh) + return ssrh, err + case string(ServiceKindBasicReplicaHealthServiceKindStateless): + var ssih StatelessServiceInstanceHealth + err := json.Unmarshal(body, &ssih) + return ssih, err + default: + var rh ReplicaHealth + err := json.Unmarshal(body, &rh) + return rh, err + } +} +func unmarshalBasicReplicaHealthArray(body []byte) ([]BasicReplicaHealth, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rhArray := make([]BasicReplicaHealth, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rh, err := unmarshalBasicReplicaHealth(*rawMessage) + if err != nil { + return nil, err + } + rhArray[index] = rh + } + return rhArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaHealth. +func (rh ReplicaHealth) MarshalJSON() ([]byte, error) { + rh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindReplicaHealth + objectMap := make(map[string]interface{}) + if rh.PartitionID != nil { + objectMap["PartitionId"] = rh.PartitionID + } + if rh.ServiceKind != "" { + objectMap["ServiceKind"] = rh.ServiceKind + } + if rh.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rh.AggregatedHealthState + } + if rh.HealthEvents != nil { + objectMap["HealthEvents"] = rh.HealthEvents + } + if rh.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rh.UnhealthyEvaluations + } + if rh.HealthStatistics != nil { + objectMap["HealthStatistics"] = rh.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return nil, false +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return &rh, true +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &rh, true +} + +// ReplicaHealthEvaluation represents health evaluation for a replica, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type ReplicaHealthEvaluation struct { + // PartitionID - Id of the partition to which the replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaOrInstanceID - Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID. + ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the replica. The types of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) MarshalJSON() ([]byte, error) { + rhe.Kind = KindReplica + objectMap := make(map[string]interface{}) + if rhe.PartitionID != nil { + objectMap["PartitionId"] = rhe.PartitionID + } + if rhe.ReplicaOrInstanceID != nil { + objectMap["ReplicaOrInstanceId"] = rhe.ReplicaOrInstanceID + } + if rhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations + } + if rhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState + } + if rhe.Description != nil { + objectMap["Description"] = rhe.Description + } + if rhe.Kind != "" { + objectMap["Kind"] = rhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return &rhe, true +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &rhe, true +} + +// ReplicaHealthModel ... +type ReplicaHealthModel struct { + autorest.Response `json:"-"` + Value BasicReplicaHealth `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ReplicaHealthModel struct. +func (rhm *ReplicaHealthModel) UnmarshalJSON(body []byte) error { + rh, err := unmarshalBasicReplicaHealth(body) + if err != nil { + return err + } + rhm.Value = rh + + return nil +} + +// BasicReplicaHealthState represents a base class for stateful service replica or stateless service instance health +// state. +type BasicReplicaHealthState interface { + AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) + AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) + AsReplicaHealthState() (*ReplicaHealthState, bool) +} + +// ReplicaHealthState represents a base class for stateful service replica or stateless service instance health +// state. +type ReplicaHealthState struct { + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +func unmarshalBasicReplicaHealthState(body []byte) (BasicReplicaHealthState, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaHealthStateServiceKindStateful): + var ssrhs StatefulServiceReplicaHealthState + err := json.Unmarshal(body, &ssrhs) + return ssrhs, err + case string(ServiceKindBasicReplicaHealthStateServiceKindStateless): + var ssihs StatelessServiceInstanceHealthState + err := json.Unmarshal(body, &ssihs) + return ssihs, err + default: + var RHS ReplicaHealthState + err := json.Unmarshal(body, &RHS) + return RHS, err + } +} +func unmarshalBasicReplicaHealthStateArray(body []byte) ([]BasicReplicaHealthState, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + RHSArray := make([]BasicReplicaHealthState, len(rawMessages)) + + for index, rawMessage := range rawMessages { + RHS, err := unmarshalBasicReplicaHealthState(*rawMessage) + if err != nil { + return nil, err + } + RHSArray[index] = RHS + } + return RHSArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaHealthState. +func (RHS ReplicaHealthState) MarshalJSON() ([]byte, error) { + RHS.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState + objectMap := make(map[string]interface{}) + if RHS.PartitionID != nil { + objectMap["PartitionId"] = RHS.PartitionID + } + if RHS.ServiceKind != "" { + objectMap["ServiceKind"] = RHS.ServiceKind + } + if RHS.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = RHS.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return nil, false +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return &RHS, true +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &RHS, true +} + +// ReplicaHealthStateChunk represents the health state chunk of a stateful service replica or a stateless +// service instance. +// The replica health state contains the replica ID and its aggregated health state. +type ReplicaHealthStateChunk struct { + // ReplicaOrInstanceID - Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID. + ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ReplicaHealthStateChunkList the list of replica health state chunks that respect the input filters in +// the chunk query. Returned by get cluster health state chunks query. +type ReplicaHealthStateChunkList struct { + // Items - The list of replica health state chunks that respect the input filters in the chunk query. + Items *[]ReplicaHealthStateChunk `json:"Items,omitempty"` +} + +// ReplicaHealthStateFilter defines matching criteria to determine whether a replica should be included as +// a child of a partition in the cluster health chunk. +// The replicas are only returned if the parent entities match a filter specified in the cluster health +// chunk query description. The parent partition, service and application must be included in the cluster +// health chunk. +// One filter can match zero, one or multiple replicas, depending on its properties. +type ReplicaHealthStateFilter struct { + // ReplicaOrInstanceIDFilter - Id of the stateful service replica or stateless service instance that matches the filter. The filter is applied only to the specified replica, if it exists. + // If the replica doesn't exist, no replica is returned in the cluster health chunk based on this filter. + // If the replica exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all replicas that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ReplicaOrInstanceIDFilter *string `json:"ReplicaOrInstanceIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the replicas. It allows selecting replicas if they match the desired health states. + // The possible values are integer value of one of the following health states. Only replicas that match the filter are returned. All replicas are used to evaluate the parent partition aggregated health state. + // If not specified, default value is None, unless the replica ID is specified. If the filter has default value and replica ID is specified, the matching replica is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches replicas with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// BasicReplicaInfo information about the identity, status, health, node name, uptime, and other details about the +// replica. +type BasicReplicaInfo interface { + AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) + AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) + AsReplicaInfo() (*ReplicaInfo, bool) +} + +// ReplicaInfo information about the identity, status, health, node name, uptime, and other details about the +// replica. +type ReplicaInfo struct { + autorest.Response `json:"-"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicReplicaInfo(body []byte) (BasicReplicaInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaInfoServiceKindStateful): + var ssri StatefulServiceReplicaInfo + err := json.Unmarshal(body, &ssri) + return ssri, err + case string(ServiceKindBasicReplicaInfoServiceKindStateless): + var ssii StatelessServiceInstanceInfo + err := json.Unmarshal(body, &ssii) + return ssii, err + default: + var ri ReplicaInfo + err := json.Unmarshal(body, &ri) + return ri, err + } +} +func unmarshalBasicReplicaInfoArray(body []byte) ([]BasicReplicaInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + riArray := make([]BasicReplicaInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ri, err := unmarshalBasicReplicaInfo(*rawMessage) + if err != nil { + return nil, err + } + riArray[index] = ri + } + return riArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaInfo. +func (ri ReplicaInfo) MarshalJSON() ([]byte, error) { + ri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindReplicaInfo + objectMap := make(map[string]interface{}) + if ri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ri.ReplicaStatus + } + if ri.HealthState != "" { + objectMap["HealthState"] = ri.HealthState + } + if ri.NodeName != nil { + objectMap["NodeName"] = ri.NodeName + } + if ri.Address != nil { + objectMap["Address"] = ri.Address + } + if ri.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ri.LastInBuildDurationInSeconds + } + if ri.ServiceKind != "" { + objectMap["ServiceKind"] = ri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return &ri, true +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ri, true +} + +// ReplicaInfoModel ... +type ReplicaInfoModel struct { + autorest.Response `json:"-"` + Value BasicReplicaInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ReplicaInfoModel struct. +func (rim *ReplicaInfoModel) UnmarshalJSON(body []byte) error { + ri, err := unmarshalBasicReplicaInfo(body) + if err != nil { + return err + } + rim.Value = ri + + return nil +} + +// ReplicasHealthEvaluation represents health evaluation for replicas, containing health evaluations for +// each unhealthy replica that impacted current aggregated health state. Can be returned when evaluating +// partition health and the aggregated health state is either Error or Warning. +type ReplicasHealthEvaluation struct { + // MaxPercentUnhealthyReplicasPerPartition - Maximum allowed percentage of unhealthy replicas per partition from the ApplicationHealthPolicy. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"` + // TotalCount - Total number of replicas in the partition from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ReplicaHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) MarshalJSON() ([]byte, error) { + rhe.Kind = KindReplicas + objectMap := make(map[string]interface{}) + if rhe.MaxPercentUnhealthyReplicasPerPartition != nil { + objectMap["MaxPercentUnhealthyReplicasPerPartition"] = rhe.MaxPercentUnhealthyReplicasPerPartition + } + if rhe.TotalCount != nil { + objectMap["TotalCount"] = rhe.TotalCount + } + if rhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations + } + if rhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState + } + if rhe.Description != nil { + objectMap["Description"] = rhe.Description + } + if rhe.Kind != "" { + objectMap["Kind"] = rhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return &rhe, true +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &rhe, true +} + +// BasicReplicaStatusBase information about the replica. +type BasicReplicaStatusBase interface { + AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) + AsReplicaStatusBase() (*ReplicaStatusBase, bool) +} + +// ReplicaStatusBase information about the replica. +type ReplicaStatusBase struct { + // Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore' + Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicaStatusBase(body []byte) (BasicReplicaStatusBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindKeyValueStore): + var kvsrs KeyValueStoreReplicaStatus + err := json.Unmarshal(body, &kvsrs) + return kvsrs, err + default: + var rsb ReplicaStatusBase + err := json.Unmarshal(body, &rsb) + return rsb, err + } +} +func unmarshalBasicReplicaStatusBaseArray(body []byte) ([]BasicReplicaStatusBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rsbArray := make([]BasicReplicaStatusBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rsb, err := unmarshalBasicReplicaStatusBase(*rawMessage) + if err != nil { + return nil, err + } + rsbArray[index] = rsb + } + return rsbArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaStatusBase. +func (rsb ReplicaStatusBase) MarshalJSON() ([]byte, error) { + rsb.Kind = KindReplicaStatusBase + objectMap := make(map[string]interface{}) + if rsb.Kind != "" { + objectMap["Kind"] = rsb.Kind + } + return json.Marshal(objectMap) +} + +// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) { + return nil, false +} + +// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsReplicaStatusBase() (*ReplicaStatusBase, bool) { + return &rsb, true +} + +// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) { + return &rsb, true +} + +// ReplicatorQueueStatus provides various statistics of the queue used in the service fabric replicator. +// Contains information about the service fabric replicator like the replication/copy queue utilization, +// last acknowledgement received timestamp, etc. +// Depending on the role of the replicator, the properties in this type imply different meanings. +type ReplicatorQueueStatus struct { + // QueueUtilizationPercentage - Represents the utilization of the queue. A value of 0 indicates that the queue is empty and a value of 100 indicates the queue is full. + QueueUtilizationPercentage *int32 `json:"QueueUtilizationPercentage,omitempty"` + // QueueMemorySize - Represents the virtual memory consumed by the queue in bytes. + QueueMemorySize *string `json:"QueueMemorySize,omitempty"` + // FirstSequenceNumber - On a primary replicator, this is semantically the sequence number of the operation for which all the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is the smallest sequence number of the operation that is present in the queue. + FirstSequenceNumber *string `json:"FirstSequenceNumber,omitempty"` + // CompletedSequenceNumber - On a primary replicator, this is semantically the highest sequence number of the operation for which all the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is semantically the highest sequence number that has been applied to the persistent state. + CompletedSequenceNumber *string `json:"CompletedSequenceNumber,omitempty"` + // CommittedSequenceNumber - On a primary replicator, this is semantically the highest sequence number of the operation for which a write quorum of the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is semantically the highest sequence number of the in-order operation received from the primary. + CommittedSequenceNumber *string `json:"CommittedSequenceNumber,omitempty"` + // LastSequenceNumber - Represents the latest sequence number of the operation that is available in the queue. + LastSequenceNumber *string `json:"LastSequenceNumber,omitempty"` +} + +// BasicReplicatorStatus represents a base class for primary or secondary replicator status. +// Contains information about the service fabric replicator like the replication/copy queue utilization, last +// acknowledgement received timestamp, etc. +type BasicReplicatorStatus interface { + AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) + AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) + AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) + AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) + AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) + AsReplicatorStatus() (*ReplicatorStatus, bool) +} + +// ReplicatorStatus represents a base class for primary or secondary replicator status. +// Contains information about the service fabric replicator like the replication/copy queue utilization, last +// acknowledgement received timestamp, etc. +type ReplicatorStatus struct { + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicatorStatus(body []byte) (BasicReplicatorStatus, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPrimary): + var prs PrimaryReplicatorStatus + err := json.Unmarshal(body, &prs) + return prs, err + case string(KindSecondaryReplicatorStatus): + var srs SecondaryReplicatorStatus + err := json.Unmarshal(body, &srs) + return srs, err + case string(KindActiveSecondary): + var sars SecondaryActiveReplicatorStatus + err := json.Unmarshal(body, &sars) + return sars, err + case string(KindIdleSecondary): + var sirs SecondaryIdleReplicatorStatus + err := json.Unmarshal(body, &sirs) + return sirs, err + default: + var rs ReplicatorStatus + err := json.Unmarshal(body, &rs) + return rs, err + } +} +func unmarshalBasicReplicatorStatusArray(body []byte) ([]BasicReplicatorStatus, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rsArray := make([]BasicReplicatorStatus, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rs, err := unmarshalBasicReplicatorStatus(*rawMessage) + if err != nil { + return nil, err + } + rsArray[index] = rs + } + return rsArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicatorStatus. +func (rs ReplicatorStatus) MarshalJSON() ([]byte, error) { + rs.Kind = KindReplicatorStatus + objectMap := make(map[string]interface{}) + if rs.Kind != "" { + objectMap["Kind"] = rs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return &rs, true +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &rs, true +} + +// ResolvedServiceEndpoint endpoint of a resolved service partition. +type ResolvedServiceEndpoint struct { + // Kind - The role of the replica where the endpoint is reported. Possible values include: 'ServiceEndpointRoleInvalid', 'ServiceEndpointRoleStateless', 'ServiceEndpointRoleStatefulPrimary', 'ServiceEndpointRoleStatefulSecondary' + Kind ServiceEndpointRole `json:"Kind,omitempty"` + // Address - The address of the endpoint. If the endpoint has multiple listeners the address is a JSON object with one property per listener with the value as the address of that listener. + Address *string `json:"Address,omitempty"` +} + +// ResolvedServicePartition information about a service partition and its associated endpoints. +type ResolvedServicePartition struct { + autorest.Response `json:"-"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // PartitionInformation - A representation of the resolved partition. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // Endpoints - List of resolved service endpoints of a service partition. + Endpoints *[]ResolvedServiceEndpoint `json:"Endpoints,omitempty"` + // Version - The version of this resolved service partition result. This version should be passed in the next time the ResolveService call is made via the PreviousRspVersion query parameter. + Version *string `json:"Version,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ResolvedServicePartition struct. +func (rsp *ResolvedServicePartition) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + rsp.Name = &name + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + rsp.PartitionInformation = partitionInformation + } + case "Endpoints": + if v != nil { + var endpoints []ResolvedServiceEndpoint + err = json.Unmarshal(*v, &endpoints) + if err != nil { + return err + } + rsp.Endpoints = &endpoints + } + case "Version": + if v != nil { + var version string + err = json.Unmarshal(*v, &version) + if err != nil { + return err + } + rsp.Version = &version + } + } + } + + return nil +} + +// ResourceLimits this type describes the resource limits for a given container. It describes the most +// amount of resources a container is allowed to use before being restarted. +type ResourceLimits struct { + // MemoryInGB - The memory limit in GB. + MemoryInGB *float64 `json:"memoryInGB,omitempty"` + // CPU - CPU limits in cores. At present, only full cores are supported. + CPU *float64 `json:"cpu,omitempty"` +} + +// ResourceRequests this type describes the requested resources for a given container. It describes the +// least amount of resources required for the container. A container can consume more than requested +// resources up to the specified limits before being restarted. Currently, the requested resources are +// treated as limits. +type ResourceRequests struct { + // MemoryInGB - The memory request in GB for this container. + MemoryInGB *float64 `json:"memoryInGB,omitempty"` + // CPU - Requested number of CPU cores. At present, only full cores are supported. + CPU *float64 `json:"cpu,omitempty"` +} + +// ResourceRequirements this type describes the resource requirements for a container or a service. +type ResourceRequirements struct { + // Requests - Describes the requested resources for a given container. + Requests *ResourceRequests `json:"requests,omitempty"` + // Limits - Describes the maximum limits on the resources for a given container. + Limits *ResourceLimits `json:"limits,omitempty"` +} + +// RestartDeployedCodePackageDescription defines description for restarting a deployed code package on +// Service Fabric node. +type RestartDeployedCodePackageDescription struct { + // ServiceManifestName - The name of service manifest that specified this code package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // CodePackageName - The name of the code package defined in the service manifest. + CodePackageName *string `json:"CodePackageName,omitempty"` + // CodePackageInstanceID - The instance ID for currently running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. + // Each time entry point executable is run, its instance ID will change. If 0 is passed in as the code package instance ID, the API will restart the code package with whatever instance ID it is currently running. + // If an instance ID other than 0 is passed in, the API will restart the code package only if the current Instance ID matches the passed in instance ID. + // Note, passing in the exact instance ID (not 0) in the API is safer, because if ensures at most one restart of the code package. + CodePackageInstanceID *string `json:"CodePackageInstanceId,omitempty"` +} + +// RestartNodeDescription describes the parameters to restart a Service Fabric node. +type RestartNodeDescription struct { + // NodeInstanceID - The instance ID of the target node. If instance ID is specified the node is restarted only if it matches with the current instance of the node. A default value of "0" would match any instance ID. The instance ID can be obtained using get node query. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` + // CreateFabricDump - Specify True to create a dump of the fabric node process. This is case-sensitive. Possible values include: 'False', 'True' + CreateFabricDump CreateFabricDump `json:"CreateFabricDump,omitempty"` +} + +// RestartPartitionResult represents information about an operation in a terminal state (Completed or +// Faulted). +type RestartPartitionResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// RestorePartitionDescription specifies the parameters needed to trigger a restore of a specific +// partition. +type RestorePartitionDescription struct { + // BackupID - Unique backup ID. + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupLocation - Location of the backup relative to the backup storage specified/ configured. + BackupLocation *string `json:"BackupLocation,omitempty"` + // BackupStorage - Location of the backup from where the partition will be restored. + BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RestorePartitionDescription struct. +func (rpd *RestorePartitionDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupId": + if v != nil { + var backupID uuid.UUID + err = json.Unmarshal(*v, &backupID) + if err != nil { + return err + } + rpd.BackupID = &backupID + } + case "BackupLocation": + if v != nil { + var backupLocation string + err = json.Unmarshal(*v, &backupLocation) + if err != nil { + return err + } + rpd.BackupLocation = &backupLocation + } + case "BackupStorage": + if v != nil { + backupStorage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + rpd.BackupStorage = backupStorage + } + } + } + + return nil +} + +// RestoreProgressInfo describes the progress of a restore operation on a partition. +type RestoreProgressInfo struct { + autorest.Response `json:"-"` + // RestoreState - Represents the current state of the partition restore operation. Possible values include: 'RestoreStateInvalid', 'RestoreStateAccepted', 'RestoreStateRestoreInProgress', 'RestoreStateSuccess', 'RestoreStateFailure', 'RestoreStateTimeout' + RestoreState RestoreState `json:"RestoreState,omitempty"` + // TimeStampUtc - Timestamp when operation succeeded or failed. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // RestoredEpoch - Describes the epoch at which the partition is restored. + RestoredEpoch *BackupEpoch `json:"RestoredEpoch,omitempty"` + // RestoredLsn - Restored LSN. + RestoredLsn *string `json:"RestoredLsn,omitempty"` + // FailureError - Denotes the failure encountered in performing restore operation. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// ResumeApplicationUpgradeDescription describes the parameters for resuming an unmonitored manual Service +// Fabric application upgrade +type ResumeApplicationUpgradeDescription struct { + // UpgradeDomainName - The name of the upgrade domain in which to resume the upgrade. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` +} + +// ResumeClusterUpgradeDescription describes the parameters for resuming a cluster upgrade. +type ResumeClusterUpgradeDescription struct { + // UpgradeDomain - The next upgrade domain for this cluster upgrade. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` +} + +// RollingUpgradeUpdateDescription describes the parameters for updating a rolling upgrade of application +// or cluster. +type RollingUpgradeUpdateDescription struct { + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // ReplicaSetCheckTimeoutInMilliseconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + ReplicaSetCheckTimeoutInMilliseconds *int64 `json:"ReplicaSetCheckTimeoutInMilliseconds,omitempty"` + // FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations. + // Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically. + // Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual' + FailureAction FailureAction `json:"FailureAction,omitempty"` + // HealthCheckWaitDurationInMilliseconds - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"` + // HealthCheckStableDurationInMilliseconds - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"` + // HealthCheckRetryTimeoutInMilliseconds - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"` + // UpgradeTimeoutInMilliseconds - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"` + // UpgradeDomainTimeoutInMilliseconds - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"` +} + +// BasicSafetyCheck represents a safety check performed by service fabric before continuing with the operations. These +// checks ensure the availability of the service and the reliability of the state. +type BasicSafetyCheck interface { + AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) + AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) + AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) + AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) + AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) + AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) + AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) + AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) + AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) + AsSafetyCheck() (*SafetyCheck, bool) +} + +// SafetyCheck represents a safety check performed by service fabric before continuing with the operations. +// These checks ensure the availability of the service and the reliability of the state. +type SafetyCheck struct { + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +func unmarshalBasicSafetyCheck(body []byte) (BasicSafetyCheck, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionSafetyCheck): + var psc PartitionSafetyCheck + err := json.Unmarshal(body, &psc) + return psc, err + case string(KindEnsureAvailability): + var easc EnsureAvailabilitySafetyCheck + err := json.Unmarshal(body, &easc) + return easc, err + case string(KindEnsurePartitionQuorum): + var epqsc EnsurePartitionQurumSafetyCheck + err := json.Unmarshal(body, &epqsc) + return epqsc, err + case string(KindEnsureSeedNodeQuorum): + var snsc SeedNodeSafetyCheck + err := json.Unmarshal(body, &snsc) + return snsc, err + case string(KindWaitForInbuildReplica): + var wfirsc WaitForInbuildReplicaSafetyCheck + err := json.Unmarshal(body, &wfirsc) + return wfirsc, err + case string(KindWaitForPrimaryPlacement): + var wfppsc WaitForPrimaryPlacementSafetyCheck + err := json.Unmarshal(body, &wfppsc) + return wfppsc, err + case string(KindWaitForPrimarySwap): + var wfpssc WaitForPrimarySwapSafetyCheck + err := json.Unmarshal(body, &wfpssc) + return wfpssc, err + case string(KindWaitForReconfiguration): + var wfrsc WaitForReconfigurationSafetyCheck + err := json.Unmarshal(body, &wfrsc) + return wfrsc, err + default: + var sc SafetyCheck + err := json.Unmarshal(body, &sc) + return sc, err + } +} +func unmarshalBasicSafetyCheckArray(body []byte) ([]BasicSafetyCheck, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + scArray := make([]BasicSafetyCheck, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sc, err := unmarshalBasicSafetyCheck(*rawMessage) + if err != nil { + return nil, err + } + scArray[index] = sc + } + return scArray, nil +} + +// MarshalJSON is the custom marshaler for SafetyCheck. +func (sc SafetyCheck) MarshalJSON() ([]byte, error) { + sc.Kind = KindSafetyCheck + objectMap := make(map[string]interface{}) + if sc.Kind != "" { + objectMap["Kind"] = sc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return nil, false +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return &sc, true +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &sc, true +} + +// SafetyCheckWrapper a wrapper for the safety check object. Safety checks are performed by service fabric +// before continuing with the operations. These checks ensure the availability of the service and the +// reliability of the state. +type SafetyCheckWrapper struct { + // SafetyCheck - Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. + SafetyCheck BasicSafetyCheck `json:"SafetyCheck,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for SafetyCheckWrapper struct. +func (scw *SafetyCheckWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "SafetyCheck": + if v != nil { + safetyCheck, err := unmarshalBasicSafetyCheck(*v) + if err != nil { + return err + } + scw.SafetyCheck = safetyCheck + } + } + } + + return nil +} + +// BasicScalingMechanismDescription describes the mechanism for performing a scaling operation. +type BasicScalingMechanismDescription interface { + AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) + AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) + AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) +} + +// ScalingMechanismDescription describes the mechanism for performing a scaling operation. +type ScalingMechanismDescription struct { + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicScalingMechanismDescription(body []byte) (BasicScalingMechanismDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionInstanceCount): + var picsm PartitionInstanceCountScaleMechanism + err := json.Unmarshal(body, &picsm) + return picsm, err + case string(KindAddRemoveIncrementalNamedPartition): + var arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism + err := json.Unmarshal(body, &arinpsm) + return arinpsm, err + default: + var smd ScalingMechanismDescription + err := json.Unmarshal(body, &smd) + return smd, err + } +} +func unmarshalBasicScalingMechanismDescriptionArray(body []byte) ([]BasicScalingMechanismDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + smdArray := make([]BasicScalingMechanismDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + smd, err := unmarshalBasicScalingMechanismDescription(*rawMessage) + if err != nil { + return nil, err + } + smdArray[index] = smd + } + return smdArray, nil +} + +// MarshalJSON is the custom marshaler for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) MarshalJSON() ([]byte, error) { + smd.Kind = KindScalingMechanismDescription + objectMap := make(map[string]interface{}) + if smd.Kind != "" { + objectMap["Kind"] = smd.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return nil, false +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return nil, false +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return &smd, true +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &smd, true +} + +// ScalingPolicyDescription describes how the scaling should be performed +type ScalingPolicyDescription struct { + // ScalingTrigger - Specifies the trigger associated with this scaling policy + ScalingTrigger BasicScalingTriggerDescription `json:"ScalingTrigger,omitempty"` + // ScalingMechanism - Specifies the mechanism associated with this scaling policy + ScalingMechanism BasicScalingMechanismDescription `json:"ScalingMechanism,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ScalingPolicyDescription struct. +func (spd *ScalingPolicyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ScalingTrigger": + if v != nil { + scalingTrigger, err := unmarshalBasicScalingTriggerDescription(*v) + if err != nil { + return err + } + spd.ScalingTrigger = scalingTrigger + } + case "ScalingMechanism": + if v != nil { + scalingMechanism, err := unmarshalBasicScalingMechanismDescription(*v) + if err != nil { + return err + } + spd.ScalingMechanism = scalingMechanism + } + } + } + + return nil +} + +// BasicScalingTriggerDescription describes the trigger for performing a scaling operation. +type BasicScalingTriggerDescription interface { + AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) + AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) + AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) +} + +// ScalingTriggerDescription describes the trigger for performing a scaling operation. +type ScalingTriggerDescription struct { + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicScalingTriggerDescription(body []byte) (BasicScalingTriggerDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindAveragePartitionLoad): + var aplst AveragePartitionLoadScalingTrigger + err := json.Unmarshal(body, &aplst) + return aplst, err + case string(KindAverageServiceLoad): + var aslst AverageServiceLoadScalingTrigger + err := json.Unmarshal(body, &aslst) + return aslst, err + default: + var std ScalingTriggerDescription + err := json.Unmarshal(body, &std) + return std, err + } +} +func unmarshalBasicScalingTriggerDescriptionArray(body []byte) ([]BasicScalingTriggerDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + stdArray := make([]BasicScalingTriggerDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + std, err := unmarshalBasicScalingTriggerDescription(*rawMessage) + if err != nil { + return nil, err + } + stdArray[index] = std + } + return stdArray, nil +} + +// MarshalJSON is the custom marshaler for ScalingTriggerDescription. +func (std ScalingTriggerDescription) MarshalJSON() ([]byte, error) { + std.Kind = KindScalingTriggerDescription + objectMap := make(map[string]interface{}) + if std.Kind != "" { + objectMap["Kind"] = std.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return nil, false +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return nil, false +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return &std, true +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &std, true +} + +// SecondaryActiveReplicatorStatus status of the secondary replicator when it is in active mode and is part +// of the replica set. +type SecondaryActiveReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) MarshalJSON() ([]byte, error) { + sars.Kind = KindActiveSecondary + objectMap := make(map[string]interface{}) + if sars.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = sars.ReplicationQueueStatus + } + if sars.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = sars.LastReplicationOperationReceivedTimeUtc + } + if sars.IsInBuild != nil { + objectMap["IsInBuild"] = sars.IsInBuild + } + if sars.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = sars.CopyQueueStatus + } + if sars.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = sars.LastCopyOperationReceivedTimeUtc + } + if sars.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = sars.LastAcknowledgementSentTimeUtc + } + if sars.Kind != "" { + objectMap["Kind"] = sars.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &sars, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return &sars, true +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &sars, true +} + +// SecondaryIdleReplicatorStatus status of the secondary replicator when it is in idle mode and is being +// built by the primary. +type SecondaryIdleReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) MarshalJSON() ([]byte, error) { + sirs.Kind = KindIdleSecondary + objectMap := make(map[string]interface{}) + if sirs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = sirs.ReplicationQueueStatus + } + if sirs.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = sirs.LastReplicationOperationReceivedTimeUtc + } + if sirs.IsInBuild != nil { + objectMap["IsInBuild"] = sirs.IsInBuild + } + if sirs.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = sirs.CopyQueueStatus + } + if sirs.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = sirs.LastCopyOperationReceivedTimeUtc + } + if sirs.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = sirs.LastAcknowledgementSentTimeUtc + } + if sirs.Kind != "" { + objectMap["Kind"] = sirs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &sirs, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return &sirs, true +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &sirs, true +} + +// BasicSecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in a +// ActiveSecondary role. +type BasicSecondaryReplicatorStatus interface { + AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) + AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) + AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) +} + +// SecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in +// a ActiveSecondary role. +type SecondaryReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +func unmarshalBasicSecondaryReplicatorStatus(body []byte) (BasicSecondaryReplicatorStatus, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindActiveSecondary): + var sars SecondaryActiveReplicatorStatus + err := json.Unmarshal(body, &sars) + return sars, err + case string(KindIdleSecondary): + var sirs SecondaryIdleReplicatorStatus + err := json.Unmarshal(body, &sirs) + return sirs, err + default: + var srs SecondaryReplicatorStatus + err := json.Unmarshal(body, &srs) + return srs, err + } +} +func unmarshalBasicSecondaryReplicatorStatusArray(body []byte) ([]BasicSecondaryReplicatorStatus, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srsArray := make([]BasicSecondaryReplicatorStatus, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srs, err := unmarshalBasicSecondaryReplicatorStatus(*rawMessage) + if err != nil { + return nil, err + } + srsArray[index] = srs + } + return srsArray, nil +} + +// MarshalJSON is the custom marshaler for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) MarshalJSON() ([]byte, error) { + srs.Kind = KindSecondaryReplicatorStatus + objectMap := make(map[string]interface{}) + if srs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = srs.ReplicationQueueStatus + } + if srs.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = srs.LastReplicationOperationReceivedTimeUtc + } + if srs.IsInBuild != nil { + objectMap["IsInBuild"] = srs.IsInBuild + } + if srs.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = srs.CopyQueueStatus + } + if srs.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = srs.LastCopyOperationReceivedTimeUtc + } + if srs.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = srs.LastAcknowledgementSentTimeUtc + } + if srs.Kind != "" { + objectMap["Kind"] = srs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return &srs, true +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &srs, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &srs, true +} + +// SeedNodeSafetyCheck represents a safety check for the seed nodes being performed by service fabric +// before continuing with node level operations. +type SeedNodeSafetyCheck struct { + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) MarshalJSON() ([]byte, error) { + snsc.Kind = KindEnsureSeedNodeQuorum + objectMap := make(map[string]interface{}) + if snsc.Kind != "" { + objectMap["Kind"] = snsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return nil, false +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return &snsc, true +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &snsc, true +} + +// SelectedPartition this class returns information about the partition that the user-induced operation +// acted upon. +type SelectedPartition struct { + // ServiceName - The name of the service the partition belongs to. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` +} + +// ServiceBackupConfigurationInfo backup configuration information for a specific Service Fabric service +// specifying what backup policy is being applied and suspend description, if any. +type ServiceBackupConfigurationInfo struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + sbci.Kind = KindBasicBackupConfigurationInfoKindService + objectMap := make(map[string]interface{}) + if sbci.ServiceName != nil { + objectMap["ServiceName"] = sbci.ServiceName + } + if sbci.PolicyName != nil { + objectMap["PolicyName"] = sbci.PolicyName + } + if sbci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = sbci.PolicyInheritedFrom + } + if sbci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = sbci.SuspensionInfo + } + if sbci.Kind != "" { + objectMap["Kind"] = sbci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return &sbci, true +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &sbci, true +} + +// ServiceBackupEntity identifies the Service Fabric stateful service which is being backed up. +type ServiceBackupEntity struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceBackupEntity. +func (sbe ServiceBackupEntity) MarshalJSON() ([]byte, error) { + sbe.EntityKind = EntityKindService1 + objectMap := make(map[string]interface{}) + if sbe.ServiceName != nil { + objectMap["ServiceName"] = sbe.ServiceName + } + if sbe.EntityKind != "" { + objectMap["EntityKind"] = sbe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return &sbe, true +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &sbe, true +} + +// ServiceCorrelationDescription creates a particular correlation between services. +type ServiceCorrelationDescription struct { + // Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity' + Scheme ServiceCorrelationScheme `json:"Scheme,omitempty"` + // ServiceName - The name of the service that the correlation relationship is established with. + ServiceName *string `json:"ServiceName,omitempty"` +} + +// ServiceCreatedEvent service Created event. +type ServiceCreatedEvent struct { + // ServiceTypeName - Service type name. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ApplicationName - Application name. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceInstance - Id of Service instance. + ServiceInstance *int64 `json:"ServiceInstance,omitempty"` + // IsStateful - Indicates if Service is stateful. + IsStateful *bool `json:"IsStateful,omitempty"` + // PartitionCount - Number of partitions. + PartitionCount *int32 `json:"PartitionCount,omitempty"` + // TargetReplicaSetSize - Size of target replicas set. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - Minimum size of replicas set. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ServicePackageVersion - Version of Service package. + ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindServiceCreated + objectMap := make(map[string]interface{}) + if sce.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sce.ServiceTypeName + } + if sce.ApplicationName != nil { + objectMap["ApplicationName"] = sce.ApplicationName + } + if sce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = sce.ApplicationTypeName + } + if sce.ServiceInstance != nil { + objectMap["ServiceInstance"] = sce.ServiceInstance + } + if sce.IsStateful != nil { + objectMap["IsStateful"] = sce.IsStateful + } + if sce.PartitionCount != nil { + objectMap["PartitionCount"] = sce.PartitionCount + } + if sce.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sce.TargetReplicaSetSize + } + if sce.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sce.MinReplicaSetSize + } + if sce.ServicePackageVersion != nil { + objectMap["ServicePackageVersion"] = sce.ServicePackageVersion + } + if sce.PartitionID != nil { + objectMap["PartitionId"] = sce.PartitionID + } + if sce.ServiceID != nil { + objectMap["ServiceId"] = sce.ServiceID + } + if sce.EventInstanceID != nil { + objectMap["EventInstanceId"] = sce.EventInstanceID + } + if sce.TimeStamp != nil { + objectMap["TimeStamp"] = sce.TimeStamp + } + if sce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = sce.HasCorrelatedEvents + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &sce, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return &sce, true +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &sce, true +} + +// ServiceDeletedEvent service Deleted event. +type ServiceDeletedEvent struct { + // ServiceTypeName - Service type name. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ApplicationName - Application name. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceInstance - Id of Service instance. + ServiceInstance *int64 `json:"ServiceInstance,omitempty"` + // IsStateful - Indicates if Service is stateful. + IsStateful *bool `json:"IsStateful,omitempty"` + // PartitionCount - Number of partitions. + PartitionCount *int32 `json:"PartitionCount,omitempty"` + // TargetReplicaSetSize - Size of target replicas set. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - Minimum size of replicas set. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ServicePackageVersion - Version of Service package. + ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) MarshalJSON() ([]byte, error) { + sde.Kind = KindServiceDeleted + objectMap := make(map[string]interface{}) + if sde.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sde.ServiceTypeName + } + if sde.ApplicationName != nil { + objectMap["ApplicationName"] = sde.ApplicationName + } + if sde.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = sde.ApplicationTypeName + } + if sde.ServiceInstance != nil { + objectMap["ServiceInstance"] = sde.ServiceInstance + } + if sde.IsStateful != nil { + objectMap["IsStateful"] = sde.IsStateful + } + if sde.PartitionCount != nil { + objectMap["PartitionCount"] = sde.PartitionCount + } + if sde.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sde.TargetReplicaSetSize + } + if sde.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sde.MinReplicaSetSize + } + if sde.ServicePackageVersion != nil { + objectMap["ServicePackageVersion"] = sde.ServicePackageVersion + } + if sde.ServiceID != nil { + objectMap["ServiceId"] = sde.ServiceID + } + if sde.EventInstanceID != nil { + objectMap["EventInstanceId"] = sde.EventInstanceID + } + if sde.TimeStamp != nil { + objectMap["TimeStamp"] = sde.TimeStamp + } + if sde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = sde.HasCorrelatedEvents + } + if sde.Kind != "" { + objectMap["Kind"] = sde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &sde, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return &sde, true +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &sde, true +} + +// BasicServiceDescription a ServiceDescription contains all of the information necessary to create a service. +type BasicServiceDescription interface { + AsStatefulServiceDescription() (*StatefulServiceDescription, bool) + AsStatelessServiceDescription() (*StatelessServiceDescription, bool) + AsServiceDescription() (*ServiceDescription, bool) +} + +// ServiceDescription a ServiceDescription contains all of the information necessary to create a service. +type ServiceDescription struct { + autorest.Response `json:"-"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceDescription(body []byte) (BasicServiceDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceDescriptionServiceKindStateful): + var ssd StatefulServiceDescription + err := json.Unmarshal(body, &ssd) + return ssd, err + case string(ServiceKindBasicServiceDescriptionServiceKindStateless): + var ssd StatelessServiceDescription + err := json.Unmarshal(body, &ssd) + return ssd, err + default: + var sd ServiceDescription + err := json.Unmarshal(body, &sd) + return sd, err + } +} +func unmarshalBasicServiceDescriptionArray(body []byte) ([]BasicServiceDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sdArray := make([]BasicServiceDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sd, err := unmarshalBasicServiceDescription(*rawMessage) + if err != nil { + return nil, err + } + sdArray[index] = sd + } + return sdArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceDescription. +func (sd ServiceDescription) MarshalJSON() ([]byte, error) { + sd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindServiceDescription + objectMap := make(map[string]interface{}) + if sd.ApplicationName != nil { + objectMap["ApplicationName"] = sd.ApplicationName + } + if sd.ServiceName != nil { + objectMap["ServiceName"] = sd.ServiceName + } + if sd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sd.ServiceTypeName + } + if sd.InitializationData != nil { + objectMap["InitializationData"] = sd.InitializationData + } + objectMap["PartitionDescription"] = sd.PartitionDescription + if sd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sd.PlacementConstraints + } + if sd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = sd.CorrelationScheme + } + if sd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = sd.ServiceLoadMetrics + } + if sd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sd.ServicePlacementPolicies + } + if sd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = sd.DefaultMoveCost + } + if sd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = sd.IsDefaultMoveCostSpecified + } + if sd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = sd.ServicePackageActivationMode + } + if sd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = sd.ServiceDNSName + } + if sd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = sd.ScalingPolicies + } + if sd.ServiceKind != "" { + objectMap["ServiceKind"] = sd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return nil, false +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return nil, false +} + +// AsServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return &sd, true +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &sd, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceDescription struct. +func (sd *ServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + sd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + sd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + sd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + sd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + sd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + sd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + sd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + sd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + sd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + sd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + sd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// ServiceDescriptionModel ... +type ServiceDescriptionModel struct { + autorest.Response `json:"-"` + Value BasicServiceDescription `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceDescriptionModel struct. +func (sdm *ServiceDescriptionModel) UnmarshalJSON(body []byte) error { + sd, err := unmarshalBasicServiceDescription(body) + if err != nil { + return err + } + sdm.Value = sd + + return nil +} + +// BasicServiceEvent represents the base for all Service Events. +type BasicServiceEvent interface { + AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) + AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) + AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) + AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) + AsServiceEvent() (*ServiceEvent, bool) +} + +// ServiceEvent represents the base for all Service Events. +type ServiceEvent struct { + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicServiceEvent(body []byte) (BasicServiceEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindServiceCreated): + var sce ServiceCreatedEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindServiceDeleted): + var sde ServiceDeletedEvent + err := json.Unmarshal(body, &sde) + return sde, err + case string(KindServiceHealthReportCreated): + var shrce ServiceHealthReportCreatedEvent + err := json.Unmarshal(body, &shrce) + return shrce, err + case string(KindServiceHealthReportExpired): + var shree ServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &shree) + return shree, err + default: + var se ServiceEvent + err := json.Unmarshal(body, &se) + return se, err + } +} +func unmarshalBasicServiceEventArray(body []byte) ([]BasicServiceEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + seArray := make([]BasicServiceEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + se, err := unmarshalBasicServiceEvent(*rawMessage) + if err != nil { + return nil, err + } + seArray[index] = se + } + return seArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceEvent. +func (se ServiceEvent) MarshalJSON() ([]byte, error) { + se.Kind = KindServiceEvent + objectMap := make(map[string]interface{}) + if se.ServiceID != nil { + objectMap["ServiceId"] = se.ServiceID + } + if se.EventInstanceID != nil { + objectMap["EventInstanceId"] = se.EventInstanceID + } + if se.TimeStamp != nil { + objectMap["TimeStamp"] = se.TimeStamp + } + if se.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = se.HasCorrelatedEvents + } + if se.Kind != "" { + objectMap["Kind"] = se.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceEvent() (*ServiceEvent, bool) { + return &se, true +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &se, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &se, true +} + +// ServiceFromTemplateDescription defines description for creating a Service Fabric service from a template +// defined in the application manifest. +type ServiceFromTemplateDescription struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data for the newly created service instance. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` +} + +// ServiceHealth information about the health of a Service Fabric service. +type ServiceHealth struct { + autorest.Response `json:"-"` + // Name - The name of the service whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // PartitionHealthStates - The list of partition health states associated with the service. + PartitionHealthStates *[]PartitionHealthState `json:"PartitionHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ServiceHealthEvaluation represents health evaluation for a service, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type ServiceHealthEvaluation struct { + // ServiceName - Name of the service whose health evaluation is described by this object. + ServiceName *string `json:"ServiceName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the service. The types of the unhealthy evaluations can be PartitionsHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) MarshalJSON() ([]byte, error) { + she.Kind = KindService + objectMap := make(map[string]interface{}) + if she.ServiceName != nil { + objectMap["ServiceName"] = she.ServiceName + } + if she.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations + } + if she.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = she.AggregatedHealthState + } + if she.Description != nil { + objectMap["Description"] = she.Description + } + if she.Kind != "" { + objectMap["Kind"] = she.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return &she, true +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &she, true +} + +// ServiceHealthReportCreatedEvent service Health Report Created event. +type ServiceHealthReportCreatedEvent struct { + // InstanceID - Id of Service instance. + InstanceID *int64 `json:"InstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + shrce.Kind = KindServiceHealthReportCreated + objectMap := make(map[string]interface{}) + if shrce.InstanceID != nil { + objectMap["InstanceId"] = shrce.InstanceID + } + if shrce.SourceID != nil { + objectMap["SourceId"] = shrce.SourceID + } + if shrce.Property != nil { + objectMap["Property"] = shrce.Property + } + if shrce.HealthState != nil { + objectMap["HealthState"] = shrce.HealthState + } + if shrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = shrce.TimeToLiveMs + } + if shrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = shrce.SequenceNumber + } + if shrce.Description != nil { + objectMap["Description"] = shrce.Description + } + if shrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = shrce.RemoveWhenExpired + } + if shrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = shrce.SourceUtcTimestamp + } + if shrce.ServiceID != nil { + objectMap["ServiceId"] = shrce.ServiceID + } + if shrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = shrce.EventInstanceID + } + if shrce.TimeStamp != nil { + objectMap["TimeStamp"] = shrce.TimeStamp + } + if shrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = shrce.HasCorrelatedEvents + } + if shrce.Kind != "" { + objectMap["Kind"] = shrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &shrce, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return &shrce, true +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportCreatedEvent. +func (shrce ServiceHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &shrce, true +} + +// ServiceHealthReportExpiredEvent service Health Report Expired event. +type ServiceHealthReportExpiredEvent struct { + // InstanceID - Id of Service instance. + InstanceID *int64 `json:"InstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + shree.Kind = KindServiceHealthReportExpired + objectMap := make(map[string]interface{}) + if shree.InstanceID != nil { + objectMap["InstanceId"] = shree.InstanceID + } + if shree.SourceID != nil { + objectMap["SourceId"] = shree.SourceID + } + if shree.Property != nil { + objectMap["Property"] = shree.Property + } + if shree.HealthState != nil { + objectMap["HealthState"] = shree.HealthState + } + if shree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = shree.TimeToLiveMs + } + if shree.SequenceNumber != nil { + objectMap["SequenceNumber"] = shree.SequenceNumber + } + if shree.Description != nil { + objectMap["Description"] = shree.Description + } + if shree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = shree.RemoveWhenExpired + } + if shree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = shree.SourceUtcTimestamp + } + if shree.ServiceID != nil { + objectMap["ServiceId"] = shree.ServiceID + } + if shree.EventInstanceID != nil { + objectMap["EventInstanceId"] = shree.EventInstanceID + } + if shree.TimeStamp != nil { + objectMap["TimeStamp"] = shree.TimeStamp + } + if shree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = shree.HasCorrelatedEvents + } + if shree.Kind != "" { + objectMap["Kind"] = shree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &shree, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return &shree, true +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &shree, true +} + +// ServiceHealthState represents the health state of a service, which contains the service identifier and +// its aggregated health state. +type ServiceHealthState struct { + // ServiceName - Name of the service whose health state is represented by this object. + ServiceName *string `json:"ServiceName,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// ServiceHealthStateChunk represents the health state chunk of a service, which contains the service name, +// its aggregated health state and any partitions that respect the filters in the cluster health chunk +// query description. +type ServiceHealthStateChunk struct { + // ServiceName - The name of the service whose health state chunk is provided in this object. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionHealthStateChunks - The list of partition health state chunks belonging to the service that respect the filters in the cluster health chunk query description. + PartitionHealthStateChunks *PartitionHealthStateChunkList `json:"PartitionHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ServiceHealthStateChunkList the list of service health state chunks that respect the input filters in +// the chunk query. Returned by get cluster health state chunks query. +type ServiceHealthStateChunkList struct { + // Items - The list of service health state chunks that respect the input filters in the chunk query. + Items *[]ServiceHealthStateChunk `json:"Items,omitempty"` +} + +// ServiceHealthStateFilter defines matching criteria to determine whether a service should be included as +// a child of an application in the cluster health chunk. +// The services are only returned if the parent application matches a filter specified in the cluster +// health chunk query description. +// One filter can match zero, one or multiple services, depending on its properties. +type ServiceHealthStateFilter struct { + // ServiceNameFilter - The name of the service that matches the filter. The filter is applied only to the specified service, if it exists. + // If the service doesn't exist, no service is returned in the cluster health chunk based on this filter. + // If the service exists, it is included as the application's child if the health state matches the other filter properties. + // If not specified, all services that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ServiceNameFilter *string `json:"ServiceNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the services. It allows selecting services if they match the desired health states. + // The possible values are integer value of one of the following health states. Only services that match the filter are returned. All services are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the service name is specified. If the filter has default value and service name is specified, the matching service is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches services with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // PartitionFilters - Defines a list of filters that specify which partitions to be included in the returned cluster health chunk as children of the service. The partitions are returned only if the parent service matches a filter. + // If the list is empty, no partitions are returned. All the partitions are used to evaluate the parent service aggregated health state, regardless of the input filters. + // The service filter may specify multiple partition filters. + // For example, it can specify a filter to return all partitions with health state Error and another filter to always include a partition identified by its partition ID. + PartitionFilters *[]PartitionHealthStateFilter `json:"PartitionFilters,omitempty"` +} + +// BasicServiceInfo information about a Service Fabric service. +type BasicServiceInfo interface { + AsStatefulServiceInfo() (*StatefulServiceInfo, bool) + AsStatelessServiceInfo() (*StatelessServiceInfo, bool) + AsServiceInfo() (*ServiceInfo, bool) +} + +// ServiceInfo information about a Service Fabric service. +type ServiceInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceInfo(body []byte) (BasicServiceInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceInfoServiceKindStateful): + var ssi StatefulServiceInfo + err := json.Unmarshal(body, &ssi) + return ssi, err + case string(ServiceKindBasicServiceInfoServiceKindStateless): + var ssi StatelessServiceInfo + err := json.Unmarshal(body, &ssi) + return ssi, err + default: + var si ServiceInfo + err := json.Unmarshal(body, &si) + return si, err + } +} +func unmarshalBasicServiceInfoArray(body []byte) ([]BasicServiceInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + siArray := make([]BasicServiceInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + si, err := unmarshalBasicServiceInfo(*rawMessage) + if err != nil { + return nil, err + } + siArray[index] = si + } + return siArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceInfo. +func (si ServiceInfo) MarshalJSON() ([]byte, error) { + si.ServiceKind = ServiceKindBasicServiceInfoServiceKindServiceInfo + objectMap := make(map[string]interface{}) + if si.ID != nil { + objectMap["Id"] = si.ID + } + if si.Name != nil { + objectMap["Name"] = si.Name + } + if si.TypeName != nil { + objectMap["TypeName"] = si.TypeName + } + if si.ManifestVersion != nil { + objectMap["ManifestVersion"] = si.ManifestVersion + } + if si.HealthState != "" { + objectMap["HealthState"] = si.HealthState + } + if si.ServiceStatus != "" { + objectMap["ServiceStatus"] = si.ServiceStatus + } + if si.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = si.IsServiceGroup + } + if si.ServiceKind != "" { + objectMap["ServiceKind"] = si.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return nil, false +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return nil, false +} + +// AsServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return &si, true +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &si, true +} + +// ServiceInfoModel ... +type ServiceInfoModel struct { + autorest.Response `json:"-"` + Value BasicServiceInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceInfoModel struct. +func (sim *ServiceInfoModel) UnmarshalJSON(body []byte) error { + si, err := unmarshalBasicServiceInfo(body) + if err != nil { + return err + } + sim.Value = si + + return nil +} + +// ServiceLoadMetricDescription specifies a metric to load balance a service during runtime. +type ServiceLoadMetricDescription struct { + // Name - The name of the metric. If the service chooses to report load during runtime, the load metric name should match the name that is specified in Name exactly. Note that metric names are case-sensitive. + Name *string `json:"Name,omitempty"` + // Weight - The service load metric relative weight, compared to other metrics configured for this service, as a number. Possible values include: 'ServiceLoadMetricWeightZero', 'ServiceLoadMetricWeightLow', 'ServiceLoadMetricWeightMedium', 'ServiceLoadMetricWeightHigh' + Weight ServiceLoadMetricWeight `json:"Weight,omitempty"` + // PrimaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Primary replica. + PrimaryDefaultLoad *int32 `json:"PrimaryDefaultLoad,omitempty"` + // SecondaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Secondary replica. + SecondaryDefaultLoad *int32 `json:"SecondaryDefaultLoad,omitempty"` + // DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric. + DefaultLoad *int32 `json:"DefaultLoad,omitempty"` +} + +// ServiceNameInfo information about the service name. +type ServiceNameInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// BasicServicePartitionInfo information about a partition of a Service Fabric service. +type BasicServicePartitionInfo interface { + AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) + AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) + AsServicePartitionInfo() (*ServicePartitionInfo, bool) +} + +// ServicePartitionInfo information about a partition of a Service Fabric service. +type ServicePartitionInfo struct { + autorest.Response `json:"-"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServicePartitionInfo(body []byte) (BasicServicePartitionInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServicePartitionInfoServiceKindStateful): + var sspi StatefulServicePartitionInfo + err := json.Unmarshal(body, &sspi) + return sspi, err + case string(ServiceKindBasicServicePartitionInfoServiceKindStateless): + var sspi StatelessServicePartitionInfo + err := json.Unmarshal(body, &sspi) + return sspi, err + default: + var spi ServicePartitionInfo + err := json.Unmarshal(body, &spi) + return spi, err + } +} +func unmarshalBasicServicePartitionInfoArray(body []byte) ([]BasicServicePartitionInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + spiArray := make([]BasicServicePartitionInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + spi, err := unmarshalBasicServicePartitionInfo(*rawMessage) + if err != nil { + return nil, err + } + spiArray[index] = spi + } + return spiArray, nil +} + +// MarshalJSON is the custom marshaler for ServicePartitionInfo. +func (spi ServicePartitionInfo) MarshalJSON() ([]byte, error) { + spi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo + objectMap := make(map[string]interface{}) + if spi.HealthState != "" { + objectMap["HealthState"] = spi.HealthState + } + if spi.PartitionStatus != "" { + objectMap["PartitionStatus"] = spi.PartitionStatus + } + objectMap["PartitionInformation"] = spi.PartitionInformation + if spi.ServiceKind != "" { + objectMap["ServiceKind"] = spi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return nil, false +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return nil, false +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return &spi, true +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &spi, true +} + +// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfo struct. +func (spi *ServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + spi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + spi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + spi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + spi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// ServicePartitionInfoModel ... +type ServicePartitionInfoModel struct { + autorest.Response `json:"-"` + Value BasicServicePartitionInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfoModel struct. +func (spim *ServicePartitionInfoModel) UnmarshalJSON(body []byte) error { + spi, err := unmarshalBasicServicePartitionInfo(body) + if err != nil { + return err + } + spim.Value = spi + + return nil +} + +// ServicePlacementInvalidDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where a particular fault or upgrade domain should not be used for placement of +// the instances or replicas of that service. +type ServicePlacementInvalidDomainPolicyDescription struct { + // DomainName - The name of the domain that should not be used for placement. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) MarshalJSON() ([]byte, error) { + spidpd.Type = TypeInvalidDomain + objectMap := make(map[string]interface{}) + if spidpd.DomainName != nil { + objectMap["DomainName"] = spidpd.DomainName + } + if spidpd.Type != "" { + objectMap["Type"] = spidpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return &spidpd, true +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spidpd, true +} + +// ServicePlacementNonPartiallyPlaceServicePolicyDescription describes the policy to be used for placement +// of a Service Fabric service where all replicas must be able to be placed in order for any replicas to be +// created. +type ServicePlacementNonPartiallyPlaceServicePolicyDescription struct { + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) MarshalJSON() ([]byte, error) { + spnppspd.Type = TypeNonPartiallyPlaceService + objectMap := make(map[string]interface{}) + if spnppspd.Type != "" { + objectMap["Type"] = spnppspd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return &spnppspd, true +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spnppspd, true +} + +// BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type BasicServicePlacementPolicyDescription interface { + AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) + AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) + AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) + AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) + AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) + AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) +} + +// ServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type ServicePlacementPolicyDescription struct { + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +func unmarshalBasicServicePlacementPolicyDescription(body []byte) (BasicServicePlacementPolicyDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Type"] { + case string(TypeInvalidDomain): + var spidpd ServicePlacementInvalidDomainPolicyDescription + err := json.Unmarshal(body, &spidpd) + return spidpd, err + case string(TypeNonPartiallyPlaceService): + var spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription + err := json.Unmarshal(body, &spnppspd) + return spnppspd, err + case string(TypePreferredPrimaryDomain): + var spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription + err := json.Unmarshal(body, &spppdpd) + return spppdpd, err + case string(TypeRequiredDomain): + var sprdpd ServicePlacementRequiredDomainPolicyDescription + err := json.Unmarshal(body, &sprdpd) + return sprdpd, err + case string(TypeRequiredDomainDistribution): + var sprddpd ServicePlacementRequireDomainDistributionPolicyDescription + err := json.Unmarshal(body, &sprddpd) + return sprddpd, err + default: + var sppd ServicePlacementPolicyDescription + err := json.Unmarshal(body, &sppd) + return sppd, err + } +} +func unmarshalBasicServicePlacementPolicyDescriptionArray(body []byte) ([]BasicServicePlacementPolicyDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sppdArray := make([]BasicServicePlacementPolicyDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sppd, err := unmarshalBasicServicePlacementPolicyDescription(*rawMessage) + if err != nil { + return nil, err + } + sppdArray[index] = sppd + } + return sppdArray, nil +} + +// MarshalJSON is the custom marshaler for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) MarshalJSON() ([]byte, error) { + sppd.Type = TypeServicePlacementPolicyDescription + objectMap := make(map[string]interface{}) + if sppd.Type != "" { + objectMap["Type"] = sppd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// ServicePlacementPreferPrimaryDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where the service's Primary replicas should optimally be placed in a particular +// domain. +// +// This placement policy is usually used with fault domains in scenarios where the Service Fabric cluster +// is geographically distributed in order to indicate that a service's primary replica should be located in +// a particular fault domain, which in geo-distributed scenarios usually aligns with regional or datacenter +// boundaries. Note that since this is an optimization it is possible that the Primary replica may not end +// up located in this domain due to failures, capacity limits, or other constraints. +type ServicePlacementPreferPrimaryDomainPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) MarshalJSON() ([]byte, error) { + spppdpd.Type = TypePreferredPrimaryDomain + objectMap := make(map[string]interface{}) + if spppdpd.DomainName != nil { + objectMap["DomainName"] = spppdpd.DomainName + } + if spppdpd.Type != "" { + objectMap["Type"] = spppdpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return &spppdpd, true +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spppdpd, true +} + +// ServicePlacementRequiredDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where the instances or replicas of that service must be placed in a particular +// domain +type ServicePlacementRequiredDomainPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) MarshalJSON() ([]byte, error) { + sprdpd.Type = TypeRequiredDomain + objectMap := make(map[string]interface{}) + if sprdpd.DomainName != nil { + objectMap["DomainName"] = sprdpd.DomainName + } + if sprdpd.Type != "" { + objectMap["Type"] = sprdpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return &sprdpd, true +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sprdpd, true +} + +// ServicePlacementRequireDomainDistributionPolicyDescription describes the policy to be used for placement +// of a Service Fabric service where two replicas from the same partition should never be placed in the +// same fault or upgrade domain. +// +// While this is not common it can expose the service to an increased risk of concurrent failures due to +// unplanned outages or other cases of subsequent/concurrent failures. As an example, consider a case where +// replicas are deployed across different data center, with one replica per location. In the event that one +// of the datacenters goes offline, normally the replica that was placed in that datacenter will be packed +// into one of the remaining datacenters. If this is not desirable then this policy should be set. +type ServicePlacementRequireDomainDistributionPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) MarshalJSON() ([]byte, error) { + sprddpd.Type = TypeRequiredDomainDistribution + objectMap := make(map[string]interface{}) + if sprddpd.DomainName != nil { + objectMap["DomainName"] = sprddpd.DomainName + } + if sprddpd.Type != "" { + objectMap["Type"] = sprddpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return &sprddpd, true +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sprddpd, true +} + +// ServiceReplicaProperties describes the properties of a service replica. +type ServiceReplicaProperties struct { + // OsType - The Operating system type required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemTypes `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ServiceResourceDescription describes a service fabric service resource. +type ServiceResourceDescription struct { + autorest.Response `json:"-"` + // ServiceResourceProperties - This type describes properties of a service resource. + *ServiceResourceProperties `json:"properties,omitempty"` + // Name - Service resource name. + Name *string `json:"name,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceResourceDescription. +func (srd ServiceResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if srd.ServiceResourceProperties != nil { + objectMap["properties"] = srd.ServiceResourceProperties + } + if srd.Name != nil { + objectMap["name"] = srd.Name + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourceDescription struct. +func (srd *ServiceResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var serviceResourceProperties ServiceResourceProperties + err = json.Unmarshal(*v, &serviceResourceProperties) + if err != nil { + return err + } + srd.ServiceResourceProperties = &serviceResourceProperties + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + srd.Name = &name + } + } + } + + return nil +} + +// ServiceResourceProperties this type describes properties of a service resource. +type ServiceResourceProperties struct { + // Description - User readable description of the service. + Description *string `json:"description,omitempty"` + // ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified. + ReplicaCount *int32 `json:"replicaCount,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"healthState,omitempty"` + // Status - Represents the status of the service. Possible values include: 'ServiceResourceStatusUnknown', 'ServiceResourceStatusActive', 'ServiceResourceStatusUpgrading', 'ServiceResourceStatusDeleting', 'ServiceResourceStatusCreating', 'ServiceResourceStatusFailed' + Status ServiceResourceStatus `json:"status,omitempty"` + // OsType - The Operating system type required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemTypes `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ServiceResourceReplicaDescription describes a replica of a service resource. +type ServiceResourceReplicaDescription struct { + autorest.Response `json:"-"` + // ReplicaName - Name of the replica. + ReplicaName *string `json:"replicaName,omitempty"` + // OsType - The Operating system type required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemTypes `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ServicesHealthEvaluation represents health evaluation for services of a certain service type belonging +// to an application, containing health evaluations for each unhealthy service that impacted current +// aggregated health state. Can be returned when evaluating application health and the aggregated health +// state is either Error or Warning. +type ServicesHealthEvaluation struct { + // ServiceTypeName - Name of the service type of the services. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // MaxPercentUnhealthyServices - Maximum allowed percentage of unhealthy services from the ServiceTypeHealthPolicy. + MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"` + // TotalCount - Total number of services of the current service type in the application from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ServiceHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) MarshalJSON() ([]byte, error) { + she.Kind = KindServices + objectMap := make(map[string]interface{}) + if she.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = she.ServiceTypeName + } + if she.MaxPercentUnhealthyServices != nil { + objectMap["MaxPercentUnhealthyServices"] = she.MaxPercentUnhealthyServices + } + if she.TotalCount != nil { + objectMap["TotalCount"] = she.TotalCount + } + if she.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations + } + if she.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = she.AggregatedHealthState + } + if she.Description != nil { + objectMap["Description"] = she.Description + } + if she.Kind != "" { + objectMap["Kind"] = she.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return &she, true +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &she, true +} + +// BasicServiceTypeDescription describes a service type defined in the service manifest of a provisioned application +// type. The properties the ones defined in the service manifest. +type BasicServiceTypeDescription interface { + AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) + AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) + AsServiceTypeDescription() (*ServiceTypeDescription, bool) +} + +// ServiceTypeDescription describes a service type defined in the service manifest of a provisioned application +// type. The properties the ones defined in the service manifest. +type ServiceTypeDescription struct { + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicServiceTypeDescription(body []byte) (BasicServiceTypeDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindStateful): + var sstd StatefulServiceTypeDescription + err := json.Unmarshal(body, &sstd) + return sstd, err + case string(KindStateless): + var sstd StatelessServiceTypeDescription + err := json.Unmarshal(body, &sstd) + return sstd, err + default: + var std ServiceTypeDescription + err := json.Unmarshal(body, &std) + return std, err + } +} +func unmarshalBasicServiceTypeDescriptionArray(body []byte) ([]BasicServiceTypeDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + stdArray := make([]BasicServiceTypeDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + std, err := unmarshalBasicServiceTypeDescription(*rawMessage) + if err != nil { + return nil, err + } + stdArray[index] = std + } + return stdArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceTypeDescription. +func (std ServiceTypeDescription) MarshalJSON() ([]byte, error) { + std.Kind = KindServiceTypeDescription + objectMap := make(map[string]interface{}) + if std.IsStateful != nil { + objectMap["IsStateful"] = std.IsStateful + } + if std.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = std.ServiceTypeName + } + if std.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = std.PlacementConstraints + } + if std.LoadMetrics != nil { + objectMap["LoadMetrics"] = std.LoadMetrics + } + if std.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = std.ServicePlacementPolicies + } + if std.Extensions != nil { + objectMap["Extensions"] = std.Extensions + } + if std.Kind != "" { + objectMap["Kind"] = std.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return nil, false +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return nil, false +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return &std, true +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &std, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceTypeDescription struct. +func (std *ServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + std.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + std.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + std.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + std.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + std.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + std.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + std.Kind = kind + } + } + } + + return nil +} + +// ServiceTypeExtensionDescription describes extension of a service type defined in the service manifest. +type ServiceTypeExtensionDescription struct { + // Key - The name of the extension. + Key *string `json:"Key,omitempty"` + // Value - The extension value. + Value *string `json:"Value,omitempty"` +} + +// ServiceTypeHealthPolicy represents the health policy used to evaluate the health of services belonging +// to a service type. +type ServiceTypeHealthPolicy struct { + // MaxPercentUnhealthyPartitionsPerService - The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100 + // The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error. + // If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service. + // The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"` + // MaxPercentUnhealthyReplicasPerPartition - The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error. + // If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition. + // The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"` + // MaxPercentUnhealthyServices - The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error. + // If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning. + // This is calculated by dividing the number of unhealthy services of the specific service type over the total number of services of the specific service type. + // The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero. + MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"` +} + +// ServiceTypeHealthPolicyMapItem defines an item in ServiceTypeHealthPolicyMap. +type ServiceTypeHealthPolicyMapItem struct { + // Key - The key of the service type health policy map item. This is the name of the service type. + Key *string `json:"Key,omitempty"` + // Value - The value of the service type health policy map item. This is the ServiceTypeHealthPolicy for this service type. + Value *ServiceTypeHealthPolicy `json:"Value,omitempty"` +} + +// ServiceTypeInfo information about a service type that is defined in a service manifest of a provisioned +// application type. +type ServiceTypeInfo struct { + autorest.Response `json:"-"` + // ServiceTypeDescription - Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest. + ServiceTypeDescription BasicServiceTypeDescription `json:"ServiceTypeDescription,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServiceManifestVersion - The version of the service manifest in which this service type is defined. + ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"` + // IsServiceGroup - Indicates whether the service is a service group. If it is, the property value is true otherwise false. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceTypeInfo struct. +func (sti *ServiceTypeInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ServiceTypeDescription": + if v != nil { + serviceTypeDescription, err := unmarshalBasicServiceTypeDescription(*v) + if err != nil { + return err + } + sti.ServiceTypeDescription = serviceTypeDescription + } + case "ServiceManifestName": + if v != nil { + var serviceManifestName string + err = json.Unmarshal(*v, &serviceManifestName) + if err != nil { + return err + } + sti.ServiceManifestName = &serviceManifestName + } + case "ServiceManifestVersion": + if v != nil { + var serviceManifestVersion string + err = json.Unmarshal(*v, &serviceManifestVersion) + if err != nil { + return err + } + sti.ServiceManifestVersion = &serviceManifestVersion + } + case "IsServiceGroup": + if v != nil { + var isServiceGroup bool + err = json.Unmarshal(*v, &isServiceGroup) + if err != nil { + return err + } + sti.IsServiceGroup = &isServiceGroup + } + } + } + + return nil +} + +// ServiceTypeManifest contains the manifest describing a service type registered as part of an application +// in a Service Fabric cluster. +type ServiceTypeManifest struct { + autorest.Response `json:"-"` + // Manifest - The XML manifest as a string. + Manifest *string `json:"Manifest,omitempty"` +} + +// BasicServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a +// service. +type BasicServiceUpdateDescription interface { + AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) + AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) + AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) +} + +// ServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a +// service. +type ServiceUpdateDescription struct { + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceUpdateDescription(body []byte) (BasicServiceUpdateDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateful): + var ssud StatefulServiceUpdateDescription + err := json.Unmarshal(body, &ssud) + return ssud, err + case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateless): + var ssud StatelessServiceUpdateDescription + err := json.Unmarshal(body, &ssud) + return ssud, err + default: + var sud ServiceUpdateDescription + err := json.Unmarshal(body, &sud) + return sud, err + } +} +func unmarshalBasicServiceUpdateDescriptionArray(body []byte) ([]BasicServiceUpdateDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sudArray := make([]BasicServiceUpdateDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sud, err := unmarshalBasicServiceUpdateDescription(*rawMessage) + if err != nil { + return nil, err + } + sudArray[index] = sud + } + return sudArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) MarshalJSON() ([]byte, error) { + sud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription + objectMap := make(map[string]interface{}) + if sud.Flags != nil { + objectMap["Flags"] = sud.Flags + } + if sud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sud.PlacementConstraints + } + if sud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = sud.CorrelationScheme + } + if sud.LoadMetrics != nil { + objectMap["LoadMetrics"] = sud.LoadMetrics + } + if sud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sud.ServicePlacementPolicies + } + if sud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = sud.DefaultMoveCost + } + if sud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = sud.ScalingPolicies + } + if sud.ServiceKind != "" { + objectMap["ServiceKind"] = sud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return nil, false +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return nil, false +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return &sud, true +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &sud, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceUpdateDescription struct. +func (sud *ServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + sud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + sud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + sud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + sud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// Setting describes a setting for the container. +type Setting struct { + // Name - The name of the setting. + Name *string `json:"name,omitempty"` + // Value - The value of the setting. + Value *string `json:"value,omitempty"` +} + +// SingletonPartitionInformation information about a partition that is singleton. The services with +// singleton partitioning scheme are effectively non-partitioned. They only have one partition. +type SingletonPartitionInformation struct { + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) MarshalJSON() ([]byte, error) { + spi.ServicePartitionKind = ServicePartitionKindSingleton1 + objectMap := make(map[string]interface{}) + if spi.ID != nil { + objectMap["Id"] = spi.ID + } + if spi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = spi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return &spi, true +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &spi, true +} + +// SingletonPartitionSchemeDescription describes the partition scheme of a singleton-partitioned, or +// non-partitioned service. +type SingletonPartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + spsd.PartitionScheme = PartitionSchemeSingleton1 + objectMap := make(map[string]interface{}) + if spsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = spsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return &spsd, true +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &spsd, true +} + +// StartClusterUpgradeDescription describes the parameters for starting a cluster upgrade. +type StartClusterUpgradeDescription struct { + // CodeVersion - The cluster code version. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster configuration version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// StartedChaosEvent describes a Chaos event that gets generated when Chaos is started. +type StartedChaosEvent struct { + // ChaosParameters - Defines all the parameters to configure a Chaos run. + ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StartedChaosEvent. +func (sce StartedChaosEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindStarted + objectMap := make(map[string]interface{}) + if sce.ChaosParameters != nil { + objectMap["ChaosParameters"] = sce.ChaosParameters + } + if sce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = sce.TimeStampUtc + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return &sce, true +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &sce, true +} + +// StatefulReplicaHealthReportCreatedEvent stateful Replica Health Report Created event. +type StatefulReplicaHealthReportCreatedEvent struct { + // ReplicaInstanceID - Id of Replica instance. + ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + srhrce.Kind = KindStatefulReplicaHealthReportCreated + objectMap := make(map[string]interface{}) + if srhrce.ReplicaInstanceID != nil { + objectMap["ReplicaInstanceId"] = srhrce.ReplicaInstanceID + } + if srhrce.SourceID != nil { + objectMap["SourceId"] = srhrce.SourceID + } + if srhrce.Property != nil { + objectMap["Property"] = srhrce.Property + } + if srhrce.HealthState != nil { + objectMap["HealthState"] = srhrce.HealthState + } + if srhrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhrce.TimeToLiveMs + } + if srhrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhrce.SequenceNumber + } + if srhrce.Description != nil { + objectMap["Description"] = srhrce.Description + } + if srhrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhrce.RemoveWhenExpired + } + if srhrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhrce.SourceUtcTimestamp + } + if srhrce.PartitionID != nil { + objectMap["PartitionId"] = srhrce.PartitionID + } + if srhrce.ReplicaID != nil { + objectMap["ReplicaId"] = srhrce.ReplicaID + } + if srhrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhrce.EventInstanceID + } + if srhrce.TimeStamp != nil { + objectMap["TimeStamp"] = srhrce.TimeStamp + } + if srhrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhrce.HasCorrelatedEvents + } + if srhrce.Kind != "" { + objectMap["Kind"] = srhrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhrce, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return &srhrce, true +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportCreatedEvent. +func (srhrce StatefulReplicaHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhrce, true +} + +// StatefulReplicaHealthReportExpiredEvent stateful Replica Health Report Expired event. +type StatefulReplicaHealthReportExpiredEvent struct { + // ReplicaInstanceID - Id of Replica instance. + ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + srhree.Kind = KindStatefulReplicaHealthReportExpired + objectMap := make(map[string]interface{}) + if srhree.ReplicaInstanceID != nil { + objectMap["ReplicaInstanceId"] = srhree.ReplicaInstanceID + } + if srhree.SourceID != nil { + objectMap["SourceId"] = srhree.SourceID + } + if srhree.Property != nil { + objectMap["Property"] = srhree.Property + } + if srhree.HealthState != nil { + objectMap["HealthState"] = srhree.HealthState + } + if srhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs + } + if srhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhree.SequenceNumber + } + if srhree.Description != nil { + objectMap["Description"] = srhree.Description + } + if srhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired + } + if srhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp + } + if srhree.PartitionID != nil { + objectMap["PartitionId"] = srhree.PartitionID + } + if srhree.ReplicaID != nil { + objectMap["ReplicaId"] = srhree.ReplicaID + } + if srhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhree.EventInstanceID + } + if srhree.TimeStamp != nil { + objectMap["TimeStamp"] = srhree.TimeStamp + } + if srhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents + } + if srhree.Kind != "" { + objectMap["Kind"] = srhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhree, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return &srhree, true +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhree, true +} + +// StatefulServiceDescription describes a stateful service. +type StatefulServiceDescription struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // HasPersistedState - A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for QuorumLossWaitDuration (2) and StandByReplicaKeepDuration(4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 1. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 2. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 4. + Flags *int32 `json:"Flags,omitempty"` + // ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created. + ReplicaRestartWaitDurationSeconds *int64 `json:"ReplicaRestartWaitDurationSeconds,omitempty"` + // QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss. + QuorumLossWaitDurationSeconds *int64 `json:"QuorumLossWaitDurationSeconds,omitempty"` + // StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed. + StandByReplicaKeepDurationSeconds *int64 `json:"StandByReplicaKeepDurationSeconds,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceDescription. +func (ssd StatefulServiceDescription) MarshalJSON() ([]byte, error) { + ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateful + objectMap := make(map[string]interface{}) + if ssd.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = ssd.TargetReplicaSetSize + } + if ssd.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = ssd.MinReplicaSetSize + } + if ssd.HasPersistedState != nil { + objectMap["HasPersistedState"] = ssd.HasPersistedState + } + if ssd.Flags != nil { + objectMap["Flags"] = ssd.Flags + } + if ssd.ReplicaRestartWaitDurationSeconds != nil { + objectMap["ReplicaRestartWaitDurationSeconds"] = ssd.ReplicaRestartWaitDurationSeconds + } + if ssd.QuorumLossWaitDurationSeconds != nil { + objectMap["QuorumLossWaitDurationSeconds"] = ssd.QuorumLossWaitDurationSeconds + } + if ssd.StandByReplicaKeepDurationSeconds != nil { + objectMap["StandByReplicaKeepDurationSeconds"] = ssd.StandByReplicaKeepDurationSeconds + } + if ssd.ApplicationName != nil { + objectMap["ApplicationName"] = ssd.ApplicationName + } + if ssd.ServiceName != nil { + objectMap["ServiceName"] = ssd.ServiceName + } + if ssd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = ssd.ServiceTypeName + } + if ssd.InitializationData != nil { + objectMap["InitializationData"] = ssd.InitializationData + } + objectMap["PartitionDescription"] = ssd.PartitionDescription + if ssd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssd.PlacementConstraints + } + if ssd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssd.CorrelationScheme + } + if ssd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics + } + if ssd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies + } + if ssd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost + } + if ssd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified + } + if ssd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode + } + if ssd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = ssd.ServiceDNSName + } + if ssd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssd.ScalingPolicies + } + if ssd.ServiceKind != "" { + objectMap["ServiceKind"] = ssd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return &ssd, true +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return nil, false +} + +// AsServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return nil, false +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &ssd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceDescription struct. +func (ssd *StatefulServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssd.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssd.MinReplicaSetSize = &minReplicaSetSize + } + case "HasPersistedState": + if v != nil { + var hasPersistedState bool + err = json.Unmarshal(*v, &hasPersistedState) + if err != nil { + return err + } + ssd.HasPersistedState = &hasPersistedState + } + case "Flags": + if v != nil { + var flags int32 + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssd.Flags = &flags + } + case "ReplicaRestartWaitDurationSeconds": + if v != nil { + var replicaRestartWaitDurationSeconds int64 + err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds) + if err != nil { + return err + } + ssd.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds + } + case "QuorumLossWaitDurationSeconds": + if v != nil { + var quorumLossWaitDurationSeconds int64 + err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds) + if err != nil { + return err + } + ssd.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds + } + case "StandByReplicaKeepDurationSeconds": + if v != nil { + var standByReplicaKeepDurationSeconds int64 + err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds) + if err != nil { + return err + } + ssd.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + ssd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + ssd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + ssd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + ssd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatefulServiceInfo information about a stateful Service Fabric service. +type StatefulServiceInfo struct { + // HasPersistedState - Whether the service has persisted state. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceInfo. +func (ssi StatefulServiceInfo) MarshalJSON() ([]byte, error) { + ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if ssi.HasPersistedState != nil { + objectMap["HasPersistedState"] = ssi.HasPersistedState + } + if ssi.ID != nil { + objectMap["Id"] = ssi.ID + } + if ssi.Name != nil { + objectMap["Name"] = ssi.Name + } + if ssi.TypeName != nil { + objectMap["TypeName"] = ssi.TypeName + } + if ssi.ManifestVersion != nil { + objectMap["ManifestVersion"] = ssi.ManifestVersion + } + if ssi.HealthState != "" { + objectMap["HealthState"] = ssi.HealthState + } + if ssi.ServiceStatus != "" { + objectMap["ServiceStatus"] = ssi.ServiceStatus + } + if ssi.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = ssi.IsServiceGroup + } + if ssi.ServiceKind != "" { + objectMap["ServiceKind"] = ssi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return &ssi, true +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return nil, false +} + +// AsServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return nil, false +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &ssi, true +} + +// StatefulServicePartitionInfo information about a partition of a stateful Service Fabric service.. +type StatefulServicePartitionInfo struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int64 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int64 `json:"MinReplicaSetSize,omitempty"` + // LastQuorumLossDuration - The duration for which this partition was in quorum loss. If the partition is currently in quorum loss, it returns the duration since it has been in that state. This field is using ISO8601 format for specifying the duration. + LastQuorumLossDuration *string `json:"LastQuorumLossDuration,omitempty"` + // CurrentConfigurationEpoch - An Epoch is a configuration number for the partition as a whole. When the configuration of the replica set changes, for example when the Primary replica changes, the operations that are replicated from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary replica. + CurrentConfigurationEpoch *Epoch `json:"CurrentConfigurationEpoch,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) MarshalJSON() ([]byte, error) { + sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if sspi.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sspi.TargetReplicaSetSize + } + if sspi.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sspi.MinReplicaSetSize + } + if sspi.LastQuorumLossDuration != nil { + objectMap["LastQuorumLossDuration"] = sspi.LastQuorumLossDuration + } + if sspi.CurrentConfigurationEpoch != nil { + objectMap["CurrentConfigurationEpoch"] = sspi.CurrentConfigurationEpoch + } + if sspi.HealthState != "" { + objectMap["HealthState"] = sspi.HealthState + } + if sspi.PartitionStatus != "" { + objectMap["PartitionStatus"] = sspi.PartitionStatus + } + objectMap["PartitionInformation"] = sspi.PartitionInformation + if sspi.ServiceKind != "" { + objectMap["ServiceKind"] = sspi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return &sspi, true +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return nil, false +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return nil, false +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &sspi, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServicePartitionInfo struct. +func (sspi *StatefulServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int64 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + sspi.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int64 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + sspi.MinReplicaSetSize = &minReplicaSetSize + } + case "LastQuorumLossDuration": + if v != nil { + var lastQuorumLossDuration string + err = json.Unmarshal(*v, &lastQuorumLossDuration) + if err != nil { + return err + } + sspi.LastQuorumLossDuration = &lastQuorumLossDuration + } + case "CurrentConfigurationEpoch": + if v != nil { + var currentConfigurationEpoch Epoch + err = json.Unmarshal(*v, ¤tConfigurationEpoch) + if err != nil { + return err + } + sspi.CurrentConfigurationEpoch = ¤tConfigurationEpoch + } + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + sspi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + sspi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + sspi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sspi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatefulServiceReplicaHealth represents the health of the stateful service replica. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type StatefulServiceReplicaHealth struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) MarshalJSON() ([]byte, error) { + ssrh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateful + objectMap := make(map[string]interface{}) + if ssrh.ReplicaID != nil { + objectMap["ReplicaId"] = ssrh.ReplicaID + } + if ssrh.PartitionID != nil { + objectMap["PartitionId"] = ssrh.PartitionID + } + if ssrh.ServiceKind != "" { + objectMap["ServiceKind"] = ssrh.ServiceKind + } + if ssrh.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssrh.AggregatedHealthState + } + if ssrh.HealthEvents != nil { + objectMap["HealthEvents"] = ssrh.HealthEvents + } + if ssrh.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ssrh.UnhealthyEvaluations + } + if ssrh.HealthStatistics != nil { + objectMap["HealthStatistics"] = ssrh.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return &ssrh, true +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return nil, false +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return nil, false +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &ssrh, true +} + +// StatefulServiceReplicaHealthState represents the health state of the stateful service replica, which +// contains the replica ID and the aggregated health state. +type StatefulServiceReplicaHealthState struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) MarshalJSON() ([]byte, error) { + ssrhs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateful + objectMap := make(map[string]interface{}) + if ssrhs.ReplicaID != nil { + objectMap["ReplicaId"] = ssrhs.ReplicaID + } + if ssrhs.PartitionID != nil { + objectMap["PartitionId"] = ssrhs.PartitionID + } + if ssrhs.ServiceKind != "" { + objectMap["ServiceKind"] = ssrhs.ServiceKind + } + if ssrhs.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssrhs.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return &ssrhs, true +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return nil, false +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return nil, false +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &ssrhs, true +} + +// StatefulServiceReplicaInfo represents a stateful service replica. This includes information about the +// identity, role, status, health, node name, uptime, and other details about the replica. +type StatefulServiceReplicaInfo struct { + // ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) { + ssri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if ssri.ReplicaRole != "" { + objectMap["ReplicaRole"] = ssri.ReplicaRole + } + if ssri.ReplicaID != nil { + objectMap["ReplicaId"] = ssri.ReplicaID + } + if ssri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ssri.ReplicaStatus + } + if ssri.HealthState != "" { + objectMap["HealthState"] = ssri.HealthState + } + if ssri.NodeName != nil { + objectMap["NodeName"] = ssri.NodeName + } + if ssri.Address != nil { + objectMap["Address"] = ssri.Address + } + if ssri.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ssri.LastInBuildDurationInSeconds + } + if ssri.ServiceKind != "" { + objectMap["ServiceKind"] = ssri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return &ssri, true +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return nil, false +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ssri, true +} + +// StatefulServiceTypeDescription describes a stateful service type defined in the service manifest of a +// provisioned application type. +type StatefulServiceTypeDescription struct { + // HasPersistedState - A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) MarshalJSON() ([]byte, error) { + sstd.Kind = KindStateful + objectMap := make(map[string]interface{}) + if sstd.HasPersistedState != nil { + objectMap["HasPersistedState"] = sstd.HasPersistedState + } + if sstd.IsStateful != nil { + objectMap["IsStateful"] = sstd.IsStateful + } + if sstd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sstd.ServiceTypeName + } + if sstd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sstd.PlacementConstraints + } + if sstd.LoadMetrics != nil { + objectMap["LoadMetrics"] = sstd.LoadMetrics + } + if sstd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies + } + if sstd.Extensions != nil { + objectMap["Extensions"] = sstd.Extensions + } + if sstd.Kind != "" { + objectMap["Kind"] = sstd.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return &sstd, true +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return nil, false +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return nil, false +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &sstd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceTypeDescription struct. +func (sstd *StatefulServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HasPersistedState": + if v != nil { + var hasPersistedState bool + err = json.Unmarshal(*v, &hasPersistedState) + if err != nil { + return err + } + sstd.HasPersistedState = &hasPersistedState + } + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + sstd.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sstd.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sstd.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sstd.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sstd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + sstd.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + sstd.Kind = kind + } + } + } + + return nil +} + +// StatefulServiceUpdateDescription describes an update for a stateful service. +type StatefulServiceUpdateDescription struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created. + ReplicaRestartWaitDurationSeconds *string `json:"ReplicaRestartWaitDurationSeconds,omitempty"` + // QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss. + QuorumLossWaitDurationSeconds *string `json:"QuorumLossWaitDurationSeconds,omitempty"` + // StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed. + StandByReplicaKeepDurationSeconds *string `json:"StandByReplicaKeepDurationSeconds,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) MarshalJSON() ([]byte, error) { + ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateful + objectMap := make(map[string]interface{}) + if ssud.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = ssud.TargetReplicaSetSize + } + if ssud.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = ssud.MinReplicaSetSize + } + if ssud.ReplicaRestartWaitDurationSeconds != nil { + objectMap["ReplicaRestartWaitDurationSeconds"] = ssud.ReplicaRestartWaitDurationSeconds + } + if ssud.QuorumLossWaitDurationSeconds != nil { + objectMap["QuorumLossWaitDurationSeconds"] = ssud.QuorumLossWaitDurationSeconds + } + if ssud.StandByReplicaKeepDurationSeconds != nil { + objectMap["StandByReplicaKeepDurationSeconds"] = ssud.StandByReplicaKeepDurationSeconds + } + if ssud.Flags != nil { + objectMap["Flags"] = ssud.Flags + } + if ssud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssud.PlacementConstraints + } + if ssud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssud.CorrelationScheme + } + if ssud.LoadMetrics != nil { + objectMap["LoadMetrics"] = ssud.LoadMetrics + } + if ssud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies + } + if ssud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost + } + if ssud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssud.ScalingPolicies + } + if ssud.ServiceKind != "" { + objectMap["ServiceKind"] = ssud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return &ssud, true +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return nil, false +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return nil, false +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &ssud, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceUpdateDescription struct. +func (ssud *StatefulServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssud.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssud.MinReplicaSetSize = &minReplicaSetSize + } + case "ReplicaRestartWaitDurationSeconds": + if v != nil { + var replicaRestartWaitDurationSeconds string + err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds) + if err != nil { + return err + } + ssud.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds + } + case "QuorumLossWaitDurationSeconds": + if v != nil { + var quorumLossWaitDurationSeconds string + err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds) + if err != nil { + return err + } + ssud.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds + } + case "StandByReplicaKeepDurationSeconds": + if v != nil { + var standByReplicaKeepDurationSeconds string + err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds) + if err != nil { + return err + } + ssud.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds + } + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + ssud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessReplicaHealthReportCreatedEvent stateless Replica Health Report Created event. +type StatelessReplicaHealthReportCreatedEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) MarshalJSON() ([]byte, error) { + srhrce.Kind = KindStatelessReplicaHealthReportCreated + objectMap := make(map[string]interface{}) + if srhrce.SourceID != nil { + objectMap["SourceId"] = srhrce.SourceID + } + if srhrce.Property != nil { + objectMap["Property"] = srhrce.Property + } + if srhrce.HealthState != nil { + objectMap["HealthState"] = srhrce.HealthState + } + if srhrce.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhrce.TimeToLiveMs + } + if srhrce.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhrce.SequenceNumber + } + if srhrce.Description != nil { + objectMap["Description"] = srhrce.Description + } + if srhrce.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhrce.RemoveWhenExpired + } + if srhrce.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhrce.SourceUtcTimestamp + } + if srhrce.PartitionID != nil { + objectMap["PartitionId"] = srhrce.PartitionID + } + if srhrce.ReplicaID != nil { + objectMap["ReplicaId"] = srhrce.ReplicaID + } + if srhrce.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhrce.EventInstanceID + } + if srhrce.TimeStamp != nil { + objectMap["TimeStamp"] = srhrce.TimeStamp + } + if srhrce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhrce.HasCorrelatedEvents + } + if srhrce.Kind != "" { + objectMap["Kind"] = srhrce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhrce, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return &srhrce, true +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportCreatedEvent. +func (srhrce StatelessReplicaHealthReportCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhrce, true +} + +// StatelessReplicaHealthReportExpiredEvent stateless Replica Health Report Expired event. +type StatelessReplicaHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationHealthReportCreated', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeComplete', 'KindApplicationUpgradeDomainComplete', 'KindApplicationUpgradeRollbackComplete', 'KindApplicationUpgradeRollbackStart', 'KindApplicationUpgradeStart', 'KindDeployedApplicationHealthReportCreated', 'KindDeployedApplicationHealthReportExpired', 'KindProcessDeactivated', 'KindContainerDeactivated', 'KindNodeAborted', 'KindNodeAborting', 'KindNodeAdded', 'KindNodeClose', 'KindNodeClosing', 'KindNodeDeactivateComplete', 'KindNodeDeactivateStart', 'KindNodeDown', 'KindNodeHealthReportCreated', 'KindNodeHealthReportExpired', 'KindNodeOpenedSuccess', 'KindNodeOpenFailed', 'KindNodeOpening', 'KindNodeRemoved', 'KindNodeUp', 'KindPartitionHealthReportCreated', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigurationCompleted', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceHealthReportCreated', 'KindServiceHealthReportExpired', 'KindDeployedServiceHealthReportCreated', 'KindDeployedServiceHealthReportExpired', 'KindStatefulReplicaHealthReportCreated', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaHealthReportCreated', 'KindStatelessReplicaHealthReportExpired', 'KindClusterHealthReportCreated', 'KindClusterHealthReportExpired', 'KindClusterUpgradeComplete', 'KindClusterUpgradeDomainComplete', 'KindClusterUpgradeRollbackComplete', 'KindClusterUpgradeRollbackStart', 'KindClusterUpgradeStart', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosRestartNodeFaultCompleted', 'KindChaosRestartCodePackageFaultScheduled', 'KindChaosRestartCodePackageFaultCompleted', 'KindChaosRemoveReplicaFaultScheduled', 'KindChaosRemoveReplicaFaultCompleted', 'KindChaosMoveSecondaryFaultScheduled', 'KindChaosMovePrimaryFaultScheduled', 'KindChaosRestartReplicaFaultScheduled', 'KindChaosRestartNodeFaultScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + srhree.Kind = KindStatelessReplicaHealthReportExpired + objectMap := make(map[string]interface{}) + if srhree.SourceID != nil { + objectMap["SourceId"] = srhree.SourceID + } + if srhree.Property != nil { + objectMap["Property"] = srhree.Property + } + if srhree.HealthState != nil { + objectMap["HealthState"] = srhree.HealthState + } + if srhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs + } + if srhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhree.SequenceNumber + } + if srhree.Description != nil { + objectMap["Description"] = srhree.Description + } + if srhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired + } + if srhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp + } + if srhree.PartitionID != nil { + objectMap["PartitionId"] = srhree.PartitionID + } + if srhree.ReplicaID != nil { + objectMap["ReplicaId"] = srhree.ReplicaID + } + if srhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhree.EventInstanceID + } + if srhree.TimeStamp != nil { + objectMap["TimeStamp"] = srhree.TimeStamp + } + if srhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents + } + if srhree.Kind != "" { + objectMap["Kind"] = srhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhree, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationHealthReportCreatedEvent() (*ApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompleteEvent() (*ApplicationUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompleteEvent() (*ApplicationUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompleteEvent() (*ApplicationUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartEvent() (*ApplicationUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartEvent() (*ApplicationUpgradeStartEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportCreatedEvent() (*DeployedApplicationHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsProcessDeactivatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsProcessDeactivatedEvent() (*ProcessDeactivatedEvent, bool) { + return nil, false +} + +// AsContainerDeactivatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsContainerDeactivatedEvent() (*ContainerDeactivatedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAbortingEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAbortingEvent() (*NodeAbortingEvent, bool) { + return nil, false +} + +// AsNodeAddedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAddedEvent() (*NodeAddedEvent, bool) { + return nil, false +} + +// AsNodeCloseEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeCloseEvent() (*NodeCloseEvent, bool) { + return nil, false +} + +// AsNodeClosingEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeClosingEvent() (*NodeClosingEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateCompleteEvent() (*NodeDeactivateCompleteEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateStartEvent() (*NodeDeactivateStartEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeHealthReportCreatedEvent() (*NodeHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenedSuccessEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenedSuccessEvent() (*NodeOpenedSuccessEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeOpeningEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpeningEvent() (*NodeOpeningEvent, bool) { + return nil, false +} + +// AsNodeRemovedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeRemovedEvent() (*NodeRemovedEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionHealthReportCreatedEvent() (*PartitionHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfigurationCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionReconfigurationCompletedEvent() (*PartitionReconfigurationCompletedEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceHealthReportCreatedEvent() (*ServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServiceHealthReportCreatedEvent() (*DeployedServiceHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsDeployedServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServiceHealthReportExpiredEvent() (*DeployedServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportCreatedEvent() (*StatefulReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportCreatedEvent() (*StatelessReplicaHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return &srhree, true +} + +// AsClusterHealthReportCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterHealthReportCreatedEvent() (*ClusterHealthReportCreatedEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeCompleteEvent() (*ClusterUpgradeCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompleteEvent() (*ClusterUpgradeDomainCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompleteEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompleteEvent() (*ClusterUpgradeRollbackCompleteEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartEvent() (*ClusterUpgradeRollbackStartEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeStartEvent() (*ClusterUpgradeStartEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRestartNodeFaultCompletedEvent() (*ChaosRestartNodeFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRestartCodePackageFaultScheduledEvent() (*ChaosRestartCodePackageFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartCodePackageFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRestartCodePackageFaultCompletedEvent() (*ChaosRestartCodePackageFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRemoveReplicaFaultScheduledEvent() (*ChaosRemoveReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRemoveReplicaFaultCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRemoveReplicaFaultCompletedEvent() (*ChaosRemoveReplicaFaultCompletedEvent, bool) { + return nil, false +} + +// AsChaosMoveSecondaryFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosMoveSecondaryFaultScheduledEvent() (*ChaosMoveSecondaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosMovePrimaryFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosMovePrimaryFaultScheduledEvent() (*ChaosMovePrimaryFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartReplicaFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRestartReplicaFaultScheduledEvent() (*ChaosRestartReplicaFaultScheduledEvent, bool) { + return nil, false +} + +// AsChaosRestartNodeFaultScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosRestartNodeFaultScheduledEvent() (*ChaosRestartNodeFaultScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhree, true +} + +// StatelessServiceDescription describes a stateless service. +type StatelessServiceDescription struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"InstanceCount,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceDescription. +func (ssd StatelessServiceDescription) MarshalJSON() ([]byte, error) { + ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateless + objectMap := make(map[string]interface{}) + if ssd.InstanceCount != nil { + objectMap["InstanceCount"] = ssd.InstanceCount + } + if ssd.ApplicationName != nil { + objectMap["ApplicationName"] = ssd.ApplicationName + } + if ssd.ServiceName != nil { + objectMap["ServiceName"] = ssd.ServiceName + } + if ssd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = ssd.ServiceTypeName + } + if ssd.InitializationData != nil { + objectMap["InitializationData"] = ssd.InitializationData + } + objectMap["PartitionDescription"] = ssd.PartitionDescription + if ssd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssd.PlacementConstraints + } + if ssd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssd.CorrelationScheme + } + if ssd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics + } + if ssd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies + } + if ssd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost + } + if ssd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified + } + if ssd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode + } + if ssd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = ssd.ServiceDNSName + } + if ssd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssd.ScalingPolicies + } + if ssd.ServiceKind != "" { + objectMap["ServiceKind"] = ssd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return nil, false +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return &ssd, true +} + +// AsServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return nil, false +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &ssd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceDescription struct. +func (ssd *StatelessServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssd.InstanceCount = &instanceCount + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + ssd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + ssd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + ssd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + ssd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessServiceInfo information about a stateless Service Fabric service. +type StatelessServiceInfo struct { + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInfo. +func (ssi StatelessServiceInfo) MarshalJSON() ([]byte, error) { + ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if ssi.ID != nil { + objectMap["Id"] = ssi.ID + } + if ssi.Name != nil { + objectMap["Name"] = ssi.Name + } + if ssi.TypeName != nil { + objectMap["TypeName"] = ssi.TypeName + } + if ssi.ManifestVersion != nil { + objectMap["ManifestVersion"] = ssi.ManifestVersion + } + if ssi.HealthState != "" { + objectMap["HealthState"] = ssi.HealthState + } + if ssi.ServiceStatus != "" { + objectMap["ServiceStatus"] = ssi.ServiceStatus + } + if ssi.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = ssi.IsServiceGroup + } + if ssi.ServiceKind != "" { + objectMap["ServiceKind"] = ssi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return nil, false +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return &ssi, true +} + +// AsServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return nil, false +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &ssi, true +} + +// StatelessServiceInstanceHealth represents the health of the stateless service instance. +// Contains the instance aggregated health state, the health events and the unhealthy evaluations. +type StatelessServiceInstanceHealth struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) MarshalJSON() ([]byte, error) { + ssih.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateless + objectMap := make(map[string]interface{}) + if ssih.InstanceID != nil { + objectMap["InstanceId"] = ssih.InstanceID + } + if ssih.PartitionID != nil { + objectMap["PartitionId"] = ssih.PartitionID + } + if ssih.ServiceKind != "" { + objectMap["ServiceKind"] = ssih.ServiceKind + } + if ssih.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssih.AggregatedHealthState + } + if ssih.HealthEvents != nil { + objectMap["HealthEvents"] = ssih.HealthEvents + } + if ssih.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ssih.UnhealthyEvaluations + } + if ssih.HealthStatistics != nil { + objectMap["HealthStatistics"] = ssih.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return &ssih, true +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return nil, false +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &ssih, true +} + +// StatelessServiceInstanceHealthState represents the health state of the stateless service instance, which +// contains the instance ID and the aggregated health state. +type StatelessServiceInstanceHealthState struct { + // ReplicaID - Id of the stateless service instance on the wire this field is called ReplicaId. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) MarshalJSON() ([]byte, error) { + ssihs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateless + objectMap := make(map[string]interface{}) + if ssihs.ReplicaID != nil { + objectMap["ReplicaId"] = ssihs.ReplicaID + } + if ssihs.PartitionID != nil { + objectMap["PartitionId"] = ssihs.PartitionID + } + if ssihs.ServiceKind != "" { + objectMap["ServiceKind"] = ssihs.ServiceKind + } + if ssihs.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssihs.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return &ssihs, true +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return nil, false +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &ssihs, true +} + +// StatelessServiceInstanceInfo represents a stateless service instance. This includes information about +// the identity, status, health, node name, uptime, and other details about the instance. +type StatelessServiceInstanceInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) { + ssii.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if ssii.InstanceID != nil { + objectMap["InstanceId"] = ssii.InstanceID + } + if ssii.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ssii.ReplicaStatus + } + if ssii.HealthState != "" { + objectMap["HealthState"] = ssii.HealthState + } + if ssii.NodeName != nil { + objectMap["NodeName"] = ssii.NodeName + } + if ssii.Address != nil { + objectMap["Address"] = ssii.Address + } + if ssii.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ssii.LastInBuildDurationInSeconds + } + if ssii.ServiceKind != "" { + objectMap["ServiceKind"] = ssii.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return &ssii, true +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return nil, false +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ssii, true +} + +// StatelessServicePartitionInfo information about a partition of a stateless Service Fabric service. +type StatelessServicePartitionInfo struct { + // InstanceCount - Number of instances of this partition. + InstanceCount *int64 `json:"InstanceCount,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) MarshalJSON() ([]byte, error) { + sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if sspi.InstanceCount != nil { + objectMap["InstanceCount"] = sspi.InstanceCount + } + if sspi.HealthState != "" { + objectMap["HealthState"] = sspi.HealthState + } + if sspi.PartitionStatus != "" { + objectMap["PartitionStatus"] = sspi.PartitionStatus + } + objectMap["PartitionInformation"] = sspi.PartitionInformation + if sspi.ServiceKind != "" { + objectMap["ServiceKind"] = sspi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return nil, false +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return &sspi, true +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return nil, false +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &sspi, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServicePartitionInfo struct. +func (sspi *StatelessServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int64 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + sspi.InstanceCount = &instanceCount + } + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + sspi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + sspi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + sspi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sspi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessServiceTypeDescription describes a stateless service type defined in the service manifest of a +// provisioned application type. +type StatelessServiceTypeDescription struct { + // UseImplicitHost - A flag indicating if this type is not implemented and hosted by a user service process, but is implicitly hosted by a system created process. This value is true for services using the guest executable services, false otherwise. + UseImplicitHost *bool `json:"UseImplicitHost,omitempty"` + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) MarshalJSON() ([]byte, error) { + sstd.Kind = KindStateless + objectMap := make(map[string]interface{}) + if sstd.UseImplicitHost != nil { + objectMap["UseImplicitHost"] = sstd.UseImplicitHost + } + if sstd.IsStateful != nil { + objectMap["IsStateful"] = sstd.IsStateful + } + if sstd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sstd.ServiceTypeName + } + if sstd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sstd.PlacementConstraints + } + if sstd.LoadMetrics != nil { + objectMap["LoadMetrics"] = sstd.LoadMetrics + } + if sstd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies + } + if sstd.Extensions != nil { + objectMap["Extensions"] = sstd.Extensions + } + if sstd.Kind != "" { + objectMap["Kind"] = sstd.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return nil, false +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return &sstd, true +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return nil, false +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &sstd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceTypeDescription struct. +func (sstd *StatelessServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "UseImplicitHost": + if v != nil { + var useImplicitHost bool + err = json.Unmarshal(*v, &useImplicitHost) + if err != nil { + return err + } + sstd.UseImplicitHost = &useImplicitHost + } + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + sstd.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sstd.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sstd.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sstd.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sstd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + sstd.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + sstd.Kind = kind + } + } + } + + return nil +} + +// StatelessServiceUpdateDescription describes an update for a stateless service. +type StatelessServiceUpdateDescription struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"InstanceCount,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) MarshalJSON() ([]byte, error) { + ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateless + objectMap := make(map[string]interface{}) + if ssud.InstanceCount != nil { + objectMap["InstanceCount"] = ssud.InstanceCount + } + if ssud.Flags != nil { + objectMap["Flags"] = ssud.Flags + } + if ssud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssud.PlacementConstraints + } + if ssud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssud.CorrelationScheme + } + if ssud.LoadMetrics != nil { + objectMap["LoadMetrics"] = ssud.LoadMetrics + } + if ssud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies + } + if ssud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost + } + if ssud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssud.ScalingPolicies + } + if ssud.ServiceKind != "" { + objectMap["ServiceKind"] = ssud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return nil, false +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return &ssud, true +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return nil, false +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &ssud, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceUpdateDescription struct. +func (ssud *StatelessServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssud.InstanceCount = &instanceCount + } + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + ssud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StoppedChaosEvent describes a Chaos event that gets generated when Chaos stops because either the user +// issued a stop or the time to run was up. +type StoppedChaosEvent struct { + // Reason - Describes why Chaos stopped. Chaos can stop because of StopChaos API call or the timeToRun provided in ChaosParameters is over. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StoppedChaosEvent. +func (sce StoppedChaosEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindStopped + objectMap := make(map[string]interface{}) + if sce.Reason != nil { + objectMap["Reason"] = sce.Reason + } + if sce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = sce.TimeStampUtc + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return &sce, true +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &sce, true +} + +// String ... +type String struct { + autorest.Response `json:"-"` + Value *string `json:"value,omitempty"` +} + +// StringPropertyValue describes a Service Fabric property value of type String. +type StringPropertyValue struct { + // Data - The data of the property value. + Data *string `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StringPropertyValue. +func (spv StringPropertyValue) MarshalJSON() ([]byte, error) { + spv.Kind = KindString + objectMap := make(map[string]interface{}) + if spv.Data != nil { + objectMap["Data"] = spv.Data + } + if spv.Kind != "" { + objectMap["Kind"] = spv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return &spv, true +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &spv, true +} + +// SuccessfulPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch succeeding. +// Contains the results of any "Get" operations in the batch. +type SuccessfulPropertyBatchInfo struct { + // Properties - A map containing the properties that were requested through any "Get" property batch operations. The key represents the index of the "Get" operation in the original request, in string form. The value is the property. If a property is not found, it will not be in the map. + Properties map[string]*PropertyInfo `json:"Properties"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) MarshalJSON() ([]byte, error) { + spbi.Kind = KindSuccessful + objectMap := make(map[string]interface{}) + if spbi.Properties != nil { + objectMap["Properties"] = spbi.Properties + } + if spbi.Kind != "" { + objectMap["Kind"] = spbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return &spbi, true +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return nil, false +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return nil, false +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &spbi, true +} + +// SystemApplicationHealthEvaluation represents health evaluation for the fabric:/System application, +// containing information about the data and the algorithm used by health store to evaluate health. The +// evaluation is returned only when the aggregated health state of the cluster is either Error or Warning. +type SystemApplicationHealthEvaluation struct { + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the system application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + sahe.Kind = KindSystemApplication + objectMap := make(map[string]interface{}) + if sahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = sahe.UnhealthyEvaluations + } + if sahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = sahe.AggregatedHealthState + } + if sahe.Description != nil { + objectMap["Description"] = sahe.Description + } + if sahe.Kind != "" { + objectMap["Kind"] = sahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return &sahe, true +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &sahe, true +} + +// TestErrorChaosEvent describes a Chaos event that gets generated when an unexpected event occurs in the +// Chaos engine. +// For example, due to the cluster snapshot being inconsistent, while faulting an entity, Chaos found that +// the entity was already faulted -- which would be an unexpected event. +type TestErrorChaosEvent struct { + // Reason - Describes why TestErrorChaosEvent was generated. For example, Chaos tries to fault a partition but finds that the partition is no longer fault tolerant, then a TestErrorEvent gets generated with the reason stating that the partition is not fault tolerant. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) MarshalJSON() ([]byte, error) { + tece.Kind = KindTestError + objectMap := make(map[string]interface{}) + if tece.Reason != nil { + objectMap["Reason"] = tece.Reason + } + if tece.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = tece.TimeStampUtc + } + if tece.Kind != "" { + objectMap["Kind"] = tece.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return &tece, true +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &tece, true +} + +// TimeBasedBackupScheduleDescription describes the time based backup schedule. +type TimeBasedBackupScheduleDescription struct { + // ScheduleFrequencyType - Describes the frequency with which to run the time based backup schedule. Possible values include: 'BackupScheduleFrequencyTypeInvalid', 'BackupScheduleFrequencyTypeDaily', 'BackupScheduleFrequencyTypeWeekly' + ScheduleFrequencyType BackupScheduleFrequencyType `json:"ScheduleFrequencyType,omitempty"` + // RunDays - List of days of a week when to trigger the periodic backup. This is valid only when the backup schedule frequency type is weekly. + RunDays *[]DayOfWeek `json:"RunDays,omitempty"` + // RunTimes - Represents the list of exact time during the day in ISO8601 format. Like '19:00:00' will represent '7PM' during the day. Date specified along with time will be ignored. + RunTimes *[]date.Time `json:"RunTimes,omitempty"` + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) { + tbbsd.ScheduleKind = ScheduleKindTimeBased + objectMap := make(map[string]interface{}) + if tbbsd.ScheduleFrequencyType != "" { + objectMap["ScheduleFrequencyType"] = tbbsd.ScheduleFrequencyType + } + if tbbsd.RunDays != nil { + objectMap["RunDays"] = tbbsd.RunDays + } + if tbbsd.RunTimes != nil { + objectMap["RunTimes"] = tbbsd.RunTimes + } + if tbbsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = tbbsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return &tbbsd, true +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return nil, false +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &tbbsd, true +} + +// TimeOfDay defines an hour and minute of the day specified in 24 hour time. +type TimeOfDay struct { + // Hour - Represents the hour of the day. Value must be between 0 and 23 inclusive. + Hour *int32 `json:"Hour,omitempty"` + // Minute - Represents the minute of the hour. Value must be between 0 to 59 inclusive. + Minute *int32 `json:"Minute,omitempty"` +} + +// TimeRange defines a time range in a 24 hour day specified by a start and end time. +type TimeRange struct { + // StartTime - Defines an hour and minute of the day specified in 24 hour time. + StartTime *TimeOfDay `json:"StartTime,omitempty"` + // EndTime - Defines an hour and minute of the day specified in 24 hour time. + EndTime *TimeOfDay `json:"EndTime,omitempty"` +} + +// UniformInt64RangePartitionSchemeDescription describes a partitioning scheme where an integer range is +// allocated evenly across a number of partitions. +type UniformInt64RangePartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // LowKey - String indicating the lower bound of the partition key range that + // should be split between the partitions. + LowKey *string `json:"LowKey,omitempty"` + // HighKey - String indicating the upper bound of the partition key range that + // should be split between the partitions. + HighKey *string `json:"HighKey,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte, error) { + ui6rpsd.PartitionScheme = PartitionSchemeUniformInt64Range1 + objectMap := make(map[string]interface{}) + if ui6rpsd.Count != nil { + objectMap["Count"] = ui6rpsd.Count + } + if ui6rpsd.LowKey != nil { + objectMap["LowKey"] = ui6rpsd.LowKey + } + if ui6rpsd.HighKey != nil { + objectMap["HighKey"] = ui6rpsd.HighKey + } + if ui6rpsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = ui6rpsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return &ui6rpsd, true +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &ui6rpsd, true +} + +// UnprovisionApplicationTypeDescriptionInfo describes the operation to unregister or unprovision an +// application type and its version that was registered with the Service Fabric. +type UnprovisionApplicationTypeDescriptionInfo struct { + // ApplicationTypeVersion - The version of the application type as defined in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // Async - The flag indicating whether or not unprovision should occur asynchronously. When set to true, the unprovision operation returns when the request is accepted by the system, and the unprovision operation continues without any timeout limit. The default value is false. However, we recommend setting it to true for large application packages that were provisioned. + Async *bool `json:"Async,omitempty"` +} + +// UnprovisionFabricDescription describes the parameters for unprovisioning a cluster. +type UnprovisionFabricDescription struct { + // CodeVersion - The cluster code package version. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster manifest version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` +} + +// UpdateClusterUpgradeDescription parameters for updating a cluster upgrade. +type UpdateClusterUpgradeDescription struct { + // UpgradeKind - The type of upgrade out of the following possible values. Possible values include: 'UpgradeTypeInvalid', 'UpgradeTypeRolling', 'UpgradeTypeRollingForceRestart' + UpgradeKind UpgradeType `json:"UpgradeKind,omitempty"` + // UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster. + UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// UpgradeDomainDeltaNodesCheckHealthEvaluation represents health evaluation for delta unhealthy cluster +// nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current +// aggregated health state. +// Can be returned during cluster upgrade when cluster aggregated health state is Warning or Error. +type UpgradeDomainDeltaNodesCheckHealthEvaluation struct { + // UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` + // BaselineErrorCount - Number of upgrade domain nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade. + BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"` + // BaselineTotalCount - Total number of upgrade domain nodes in the health store at the beginning of the cluster upgrade. + BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"` + // MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of upgrade domain delta unhealthy nodes from the ClusterUpgradeHealthPolicy. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // TotalCount - Total number of upgrade domain nodes in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) { + uddnche.Kind = KindUpgradeDomainDeltaNodesCheck + objectMap := make(map[string]interface{}) + if uddnche.UpgradeDomainName != nil { + objectMap["UpgradeDomainName"] = uddnche.UpgradeDomainName + } + if uddnche.BaselineErrorCount != nil { + objectMap["BaselineErrorCount"] = uddnche.BaselineErrorCount + } + if uddnche.BaselineTotalCount != nil { + objectMap["BaselineTotalCount"] = uddnche.BaselineTotalCount + } + if uddnche.MaxPercentDeltaUnhealthyNodes != nil { + objectMap["MaxPercentDeltaUnhealthyNodes"] = uddnche.MaxPercentDeltaUnhealthyNodes + } + if uddnche.TotalCount != nil { + objectMap["TotalCount"] = uddnche.TotalCount + } + if uddnche.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = uddnche.UnhealthyEvaluations + } + if uddnche.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = uddnche.AggregatedHealthState + } + if uddnche.Description != nil { + objectMap["Description"] = uddnche.Description + } + if uddnche.Kind != "" { + objectMap["Kind"] = uddnche.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return &uddnche, true +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &uddnche, true +} + +// UpgradeDomainInfo information about an upgrade domain. +type UpgradeDomainInfo struct { + // Name - The name of the upgrade domain + Name *string `json:"Name,omitempty"` + // State - The state of the upgrade domain. Possible values include: 'UpgradeDomainStateInvalid', 'UpgradeDomainStatePending', 'UpgradeDomainStateInProgress', 'UpgradeDomainStateCompleted' + State UpgradeDomainState `json:"State,omitempty"` +} + +// UpgradeDomainNodesHealthEvaluation represents health evaluation for cluster nodes in an upgrade domain, +// containing health evaluations for each unhealthy node that impacted current aggregated health state. Can +// be returned when evaluating cluster health during cluster upgrade and the aggregated health state is +// either Error or Warning. +type UpgradeDomainNodesHealthEvaluation struct { + // UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` + // MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes in the current upgrade domain. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) MarshalJSON() ([]byte, error) { + udnhe.Kind = KindUpgradeDomainNodes + objectMap := make(map[string]interface{}) + if udnhe.UpgradeDomainName != nil { + objectMap["UpgradeDomainName"] = udnhe.UpgradeDomainName + } + if udnhe.MaxPercentUnhealthyNodes != nil { + objectMap["MaxPercentUnhealthyNodes"] = udnhe.MaxPercentUnhealthyNodes + } + if udnhe.TotalCount != nil { + objectMap["TotalCount"] = udnhe.TotalCount + } + if udnhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = udnhe.UnhealthyEvaluations + } + if udnhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = udnhe.AggregatedHealthState + } + if udnhe.Description != nil { + objectMap["Description"] = udnhe.Description + } + if udnhe.Kind != "" { + objectMap["Kind"] = udnhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return &udnhe, true +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &udnhe, true +} + +// UpgradeOrchestrationServiceState service state of Service Fabric Upgrade Orchestration Service. +type UpgradeOrchestrationServiceState struct { + autorest.Response `json:"-"` + // ServiceState - The state of Service Fabric Upgrade Orchestration Service. + ServiceState *string `json:"ServiceState,omitempty"` +} + +// UpgradeOrchestrationServiceStateSummary service state summary of Service Fabric Upgrade Orchestration +// Service. +type UpgradeOrchestrationServiceStateSummary struct { + autorest.Response `json:"-"` + // CurrentCodeVersion - The current code version of the cluster. + CurrentCodeVersion *string `json:"CurrentCodeVersion,omitempty"` + // CurrentManifestVersion - The current manifest version of the cluster. + CurrentManifestVersion *string `json:"CurrentManifestVersion,omitempty"` + // TargetCodeVersion - The target code version of the cluster. + TargetCodeVersion *string `json:"TargetCodeVersion,omitempty"` + // TargetManifestVersion - The target manifest version of the cluster. + TargetManifestVersion *string `json:"TargetManifestVersion,omitempty"` + // PendingUpgradeType - The type of the pending upgrade of the cluster. + PendingUpgradeType *string `json:"PendingUpgradeType,omitempty"` +} + +// UploadChunkRange information about which portion of the file to upload. +type UploadChunkRange struct { + // StartPosition - The start position of the portion of the file. It's represented by the number of bytes. + StartPosition *string `json:"StartPosition,omitempty"` + // EndPosition - The end position of the portion of the file. It's represented by the number of bytes. + EndPosition *string `json:"EndPosition,omitempty"` +} + +// UploadSession information about a image store upload session +type UploadSession struct { + autorest.Response `json:"-"` + // UploadSessions - When querying upload session by upload session ID, the result contains only one upload session. When querying upload session by image store relative path, the result might contain multiple upload sessions. + UploadSessions *[]UploadSessionInfo `json:"UploadSessions,omitempty"` +} + +// UploadSessionInfo information about an image store upload session. A session is associated with a +// relative path in the image store. +type UploadSessionInfo struct { + // StoreRelativePath - The remote location within image store. This path is relative to the image store root. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` + // SessionID - A unique ID of the upload session. A session ID can be reused only if the session was committed or removed. + SessionID *uuid.UUID `json:"SessionId,omitempty"` + // ModifiedDate - The date and time when the upload session was last modified. + ModifiedDate *date.Time `json:"ModifiedDate,omitempty"` + // FileSize - The size in bytes of the uploading file. + FileSize *string `json:"FileSize,omitempty"` + // ExpectedRanges - List of chunk ranges that image store has not received yet. + ExpectedRanges *[]UploadChunkRange `json:"ExpectedRanges,omitempty"` +} + +// ValidationFailedChaosEvent chaos event corresponding to a failure during validation. +type ValidationFailedChaosEvent struct { + // Reason - Describes why the ValidationFailedChaosEvent was generated. This may happen because more than MaxPercentUnhealthyNodes are unhealthy for more than MaxClusterStabilizationTimeout. This reason will be in the Reason property of the ValidationFailedChaosEvent as a string. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) MarshalJSON() ([]byte, error) { + vfce.Kind = KindValidationFailed + objectMap := make(map[string]interface{}) + if vfce.Reason != nil { + objectMap["Reason"] = vfce.Reason + } + if vfce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = vfce.TimeStampUtc + } + if vfce.Kind != "" { + objectMap["Kind"] = vfce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return &vfce, true +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &vfce, true +} + +// VolumeProperties this type describes properties of a volume resource. +type VolumeProperties struct { + // Description - User readable description of the volume. + Description *string `json:"description,omitempty"` + // Provider - Provider of the volume. + Provider *string `json:"provider,omitempty"` + // AzureFileParameters - This type describes a volume provided by an Azure Files file share. + AzureFileParameters *VolumeProviderParametersAzureFile `json:"azureFileParameters,omitempty"` +} + +// VolumeProviderParametersAzureFile this type describes a volume provided by an Azure Files file share. +type VolumeProviderParametersAzureFile struct { + // AccountName - Name of the Azure storage account for the File Share. + AccountName *string `json:"accountName,omitempty"` + // AccountKey - Access key of the Azure storage account for the File Share. + AccountKey *string `json:"accountKey,omitempty"` + // ShareName - Name of the Azure Files file share that provides storage for the volume. + ShareName *string `json:"shareName,omitempty"` +} + +// VolumeResourceDescription describes a service fabric volume resource. +type VolumeResourceDescription struct { + autorest.Response `json:"-"` + // VolumeProperties - This type describes properties of a volume resource. + *VolumeProperties `json:"properties,omitempty"` + // Name - Volume resource name. + Name *string `json:"name,omitempty"` +} + +// MarshalJSON is the custom marshaler for VolumeResourceDescription. +func (vrd VolumeResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if vrd.VolumeProperties != nil { + objectMap["properties"] = vrd.VolumeProperties + } + if vrd.Name != nil { + objectMap["name"] = vrd.Name + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for VolumeResourceDescription struct. +func (vrd *VolumeResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var volumeProperties VolumeProperties + err = json.Unmarshal(*v, &volumeProperties) + if err != nil { + return err + } + vrd.VolumeProperties = &volumeProperties + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + vrd.Name = &name + } + } + } + + return nil +} + +// WaitForInbuildReplicaSafetyCheck safety check that waits for the replica build operation to finish. This +// indicates that there is a replica that is going through the copy or is providing data for building +// another replica. Bring the node down will abort this copy operation which are typically expensive +// involving data movements. +type WaitForInbuildReplicaSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) MarshalJSON() ([]byte, error) { + wfirsc.Kind = KindWaitForInbuildReplica + objectMap := make(map[string]interface{}) + if wfirsc.PartitionID != nil { + objectMap["PartitionId"] = wfirsc.PartitionID + } + if wfirsc.Kind != "" { + objectMap["Kind"] = wfirsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfirsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return &wfirsc, true +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfirsc, true +} + +// WaitForPrimaryPlacementSafetyCheck safety check that waits for the primary replica that was moved out of +// the node due to upgrade to be placed back again on that node. +type WaitForPrimaryPlacementSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) MarshalJSON() ([]byte, error) { + wfppsc.Kind = KindWaitForPrimaryPlacement + objectMap := make(map[string]interface{}) + if wfppsc.PartitionID != nil { + objectMap["PartitionId"] = wfppsc.PartitionID + } + if wfppsc.Kind != "" { + objectMap["Kind"] = wfppsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfppsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return &wfppsc, true +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfppsc, true +} + +// WaitForPrimarySwapSafetyCheck safety check that waits for the primary replica to be moved out of the +// node before starting an upgrade to ensure the availability of the primary replica for the partition. +type WaitForPrimarySwapSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) MarshalJSON() ([]byte, error) { + wfpssc.Kind = KindWaitForPrimarySwap + objectMap := make(map[string]interface{}) + if wfpssc.PartitionID != nil { + objectMap["PartitionId"] = wfpssc.PartitionID + } + if wfpssc.Kind != "" { + objectMap["Kind"] = wfpssc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfpssc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return &wfpssc, true +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfpssc, true +} + +// WaitForReconfigurationSafetyCheck safety check that waits for the current reconfiguration of the +// partition to be completed before starting an upgrade. +type WaitForReconfigurationSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) MarshalJSON() ([]byte, error) { + wfrsc.Kind = KindWaitForReconfiguration + objectMap := make(map[string]interface{}) + if wfrsc.PartitionID != nil { + objectMap["PartitionId"] = wfrsc.PartitionID + } + if wfrsc.Kind != "" { + objectMap["Kind"] = wfrsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfrsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return &wfrsc, true +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfrsc, true +} + +// WaitingChaosEvent describes a Chaos event that gets generated when Chaos is waiting for the cluster to +// become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish. +type WaitingChaosEvent struct { + // Reason - Describes why the WaitingChaosEvent was generated, for example, due to a cluster upgrade. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitingChaosEvent. +func (wce WaitingChaosEvent) MarshalJSON() ([]byte, error) { + wce.Kind = KindWaiting + objectMap := make(map[string]interface{}) + if wce.Reason != nil { + objectMap["Reason"] = wce.Reason + } + if wce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = wce.TimeStampUtc + } + if wce.Kind != "" { + objectMap["Kind"] = wce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return &wce, true +} + +// AsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &wce, true +} diff --git a/services/servicefabric/6.3/servicefabric/servicefabricapi/interfaces.go b/services/servicefabric/6.3/servicefabric/servicefabricapi/interfaces.go new file mode 100644 index 000000000000..b0bbe2ef9753 --- /dev/null +++ b/services/servicefabric/6.3/servicefabric/servicefabricapi/interfaces.go @@ -0,0 +1,237 @@ +package servicefabricapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.3/servicefabric" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/date" + "github.com/satori/go.uuid" +) + +// BaseClientAPI contains the set of methods on the BaseClient type. +type BaseClientAPI interface { + BackupPartition(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *servicefabric.BackupPartitionDescription, backupTimeout *int32, timeout *int64) (result autorest.Response, err error) + CancelOperation(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (result autorest.Response, err error) + CancelRepairTask(ctx context.Context, repairTaskCancelDescription servicefabric.RepairTaskCancelDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + CommitImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + CopyImageStoreContent(ctx context.Context, imageStoreCopyDescription servicefabric.ImageStoreCopyDescription, timeout *int64) (result autorest.Response, err error) + CreateApplication(ctx context.Context, applicationDescription servicefabric.ApplicationDescription, timeout *int64) (result autorest.Response, err error) + CreateApplicationResource(ctx context.Context, applicationResourceName string, applicationResourceDescription servicefabric.ApplicationResourceDescription) (result autorest.Response, err error) + CreateBackupPolicy(ctx context.Context, backupPolicyDescription servicefabric.BackupPolicyDescription, timeout *int64) (result autorest.Response, err error) + CreateComposeDeployment(ctx context.Context, createComposeDeploymentDescription servicefabric.CreateComposeDeploymentDescription, timeout *int64) (result autorest.Response, err error) + CreateName(ctx context.Context, nameDescription servicefabric.NameDescription, timeout *int64) (result autorest.Response, err error) + CreateRepairTask(ctx context.Context, repairTask servicefabric.RepairTask) (result servicefabric.RepairTaskUpdateInfo, err error) + CreateService(ctx context.Context, applicationID string, serviceDescription servicefabric.BasicServiceDescription, timeout *int64) (result autorest.Response, err error) + CreateServiceFromTemplate(ctx context.Context, applicationID string, serviceFromTemplateDescription servicefabric.ServiceFromTemplateDescription, timeout *int64) (result autorest.Response, err error) + CreateVolumeResource(ctx context.Context, volumeResourceName string, volumeResourceDescription servicefabric.VolumeResourceDescription) (result autorest.Response, err error) + DeleteApplication(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + DeleteApplicationResource(ctx context.Context, applicationResourceName string) (result autorest.Response, err error) + DeleteBackupPolicy(ctx context.Context, backupPolicyName string, timeout *int64) (result autorest.Response, err error) + DeleteImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) + DeleteImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + DeleteName(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) + DeleteProperty(ctx context.Context, nameID string, propertyName string, timeout *int64) (result autorest.Response, err error) + DeleteRepairTask(ctx context.Context, repairTaskDeleteDescription servicefabric.RepairTaskDeleteDescription) (result autorest.Response, err error) + DeleteService(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + DeleteVolumeResource(ctx context.Context, volumeResourceName string) (result autorest.Response, err error) + DeployServicePackageToNode(ctx context.Context, nodeName string, deployServicePackageToNodeDescription servicefabric.DeployServicePackageToNodeDescription, timeout *int64) (result autorest.Response, err error) + DisableApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + DisableNode(ctx context.Context, nodeName string, deactivationIntentDescription servicefabric.DeactivationIntentDescription, timeout *int64) (result autorest.Response, err error) + DisablePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + DisableServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + EnableApplicationBackup(ctx context.Context, applicationID string, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + EnableNode(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) + EnablePartitionBackup(ctx context.Context, partitionID uuid.UUID, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + EnableServiceBackup(ctx context.Context, serviceID string, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + ForceApproveRepairTask(ctx context.Context, repairTaskApproveDescription servicefabric.RepairTaskApproveDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + GetAadMetadata(ctx context.Context, timeout *int64) (result servicefabric.AadMetadataObject, err error) + GetAllEntitiesBackedUpByPolicy(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupEntityList, err error) + GetApplicationBackupConfigurationInfo(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupConfigurationInfoList, err error) + GetApplicationBackupList(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetApplicationEventList(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListApplicationEvent, err error) + GetApplicationHealth(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ApplicationHealth, err error) + GetApplicationHealthUsingPolicy(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.ApplicationHealth, err error) + GetApplicationInfo(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (result servicefabric.ApplicationInfo, err error) + GetApplicationInfoList(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationInfoList, err error) + GetApplicationLoadInfo(ctx context.Context, applicationID string, timeout *int64) (result servicefabric.ApplicationLoadInfo, err error) + GetApplicationManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result servicefabric.ApplicationTypeManifest, err error) + GetApplicationNameInfo(ctx context.Context, serviceID string, timeout *int64) (result servicefabric.ApplicationNameInfo, err error) + GetApplicationResource(ctx context.Context, applicationResourceName string) (result servicefabric.ApplicationResourceDescription, err error) + GetApplicationsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListApplicationEvent, err error) + GetApplicationTypeInfoList(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationTypeInfoList, err error) + GetApplicationTypeInfoListByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationTypeInfoList, err error) + GetApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result servicefabric.ApplicationUpgradeProgressInfo, err error) + GetBackupPolicyByName(ctx context.Context, backupPolicyName string, timeout *int64) (result servicefabric.BackupPolicyDescription, err error) + GetBackupPolicyList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupPolicyDescriptionList, err error) + GetBackupsFromBackupLocation(ctx context.Context, getBackupByStorageQueryDescription servicefabric.GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetChaos(ctx context.Context, timeout *int64) (result servicefabric.Chaos, err error) + GetChaosEvents(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (result servicefabric.ChaosEventsSegment, err error) + GetChaosSchedule(ctx context.Context, timeout *int64) (result servicefabric.ChaosScheduleDescription, err error) + GetClusterConfiguration(ctx context.Context, configurationAPIVersion string, timeout *int64) (result servicefabric.ClusterConfiguration, err error) + GetClusterConfigurationUpgradeStatus(ctx context.Context, timeout *int64) (result servicefabric.ClusterConfigurationUpgradeStatusInfo, err error) + GetClusterEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListClusterEvent, err error) + GetClusterHealth(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (result servicefabric.ClusterHealth, err error) + GetClusterHealthChunk(ctx context.Context, timeout *int64) (result servicefabric.ClusterHealthChunk, err error) + GetClusterHealthChunkUsingPolicyAndAdvancedFilters(ctx context.Context, clusterHealthChunkQueryDescription *servicefabric.ClusterHealthChunkQueryDescription, timeout *int64) (result servicefabric.ClusterHealthChunk, err error) + GetClusterHealthUsingPolicy(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *servicefabric.ClusterHealthPolicies, timeout *int64) (result servicefabric.ClusterHealth, err error) + GetClusterManifest(ctx context.Context, timeout *int64) (result servicefabric.ClusterManifest, err error) + GetClusterUpgradeProgress(ctx context.Context, timeout *int64) (result servicefabric.ClusterUpgradeProgressObject, err error) + GetComposeDeploymentStatus(ctx context.Context, deploymentName string, timeout *int64) (result servicefabric.ComposeDeploymentStatusInfo, err error) + GetComposeDeploymentStatusList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedComposeDeploymentStatusInfoList, err error) + GetComposeDeploymentUpgradeProgress(ctx context.Context, deploymentName string, timeout *int64) (result servicefabric.ComposeDeploymentUpgradeProgressInfo, err error) + GetContainerLogsDeployedOnNode(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (result servicefabric.ContainerLogs, err error) + GetContainersEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListContainerInstanceEvent, err error) + GetCorrelatedEventList(ctx context.Context, eventInstanceID string, timeout *int64) (result servicefabric.ListFabricEvent, err error) + GetDataLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionDataLossProgress, err error) + GetDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.DeployedApplicationHealth, err error) + GetDeployedApplicationHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.DeployedApplicationHealth, err error) + GetDeployedApplicationInfo(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (result servicefabric.DeployedApplicationInfo, err error) + GetDeployedApplicationInfoList(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (result servicefabric.PagedDeployedApplicationInfoList, err error) + GetDeployedCodePackageInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (result servicefabric.ListDeployedCodePackageInfo, err error) + GetDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.DeployedServicePackageHealth, err error) + GetDeployedServicePackageHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.DeployedServicePackageHealth, err error) + GetDeployedServicePackageInfoList(ctx context.Context, nodeName string, applicationID string, timeout *int64) (result servicefabric.ListDeployedServicePackageInfo, err error) + GetDeployedServicePackageInfoListByName(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (result servicefabric.ListDeployedServicePackageInfo, err error) + GetDeployedServiceReplicaDetailInfo(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result servicefabric.DeployedServiceReplicaDetailInfoModel, err error) + GetDeployedServiceReplicaDetailInfoByPartitionID(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (result servicefabric.DeployedServiceReplicaDetailInfoModel, err error) + GetDeployedServiceReplicaInfoList(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceReplicaInfo, err error) + GetDeployedServiceTypeInfoByName(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceTypeInfo, err error) + GetDeployedServiceTypeInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceTypeInfo, err error) + GetFaultOperationList(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (result servicefabric.ListOperationStatus, err error) + GetImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result servicefabric.ImageStoreContent, err error) + GetImageStoreRootContent(ctx context.Context, timeout *int64) (result servicefabric.ImageStoreContent, err error) + GetImageStoreUploadSessionByID(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result servicefabric.UploadSession, err error) + GetImageStoreUploadSessionByPath(ctx context.Context, contentPath string, timeout *int64) (result servicefabric.UploadSession, err error) + GetNameExistsInfo(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) + GetNodeEventList(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListNodeEvent, err error) + GetNodeHealth(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.NodeHealth, err error) + GetNodeHealthUsingPolicy(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *servicefabric.ClusterHealthPolicy, timeout *int64) (result servicefabric.NodeHealth, err error) + GetNodeInfo(ctx context.Context, nodeName string, timeout *int64) (result servicefabric.NodeInfo, err error) + GetNodeInfoList(ctx context.Context, continuationToken string, nodeStatusFilter servicefabric.NodeStatusFilter, maxResults *int64, timeout *int64) (result servicefabric.PagedNodeInfoList, err error) + GetNodeLoadInfo(ctx context.Context, nodeName string, timeout *int64) (result servicefabric.NodeLoadInfo, err error) + GetNodesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListNodeEvent, err error) + GetNodeTransitionProgress(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (result servicefabric.NodeTransitionProgress, err error) + GetPartitionBackupConfigurationInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.PartitionBackupConfigurationInfo, err error) + GetPartitionBackupList(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (result servicefabric.PagedBackupInfoList, err error) + GetPartitionBackupProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.BackupProgressInfo, err error) + GetPartitionEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListPartitionEvent, err error) + GetPartitionHealth(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.PartitionHealth, err error) + GetPartitionHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.PartitionHealth, err error) + GetPartitionInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.ServicePartitionInfoModel, err error) + GetPartitionInfoList(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (result servicefabric.PagedServicePartitionInfoList, err error) + GetPartitionLoadInformation(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.PartitionLoadInformation, err error) + GetPartitionReplicaEventList(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListReplicaEvent, err error) + GetPartitionReplicasEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListReplicaEvent, err error) + GetPartitionRestartProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionRestartProgress, err error) + GetPartitionRestoreProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.RestoreProgressInfo, err error) + GetPartitionsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListPartitionEvent, err error) + GetPropertyInfo(ctx context.Context, nameID string, propertyName string, timeout *int64) (result servicefabric.PropertyInfo, err error) + GetPropertyInfoList(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (result servicefabric.PagedPropertyInfoList, err error) + GetProvisionedFabricCodeVersionInfoList(ctx context.Context, codeVersion string, timeout *int64) (result servicefabric.ListFabricCodeVersionInfo, err error) + GetProvisionedFabricConfigVersionInfoList(ctx context.Context, configVersion string, timeout *int64) (result servicefabric.ListFabricConfigVersionInfo, err error) + GetQuorumLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionQuorumLossProgress, err error) + GetRepairTaskList(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (result servicefabric.ListRepairTask, err error) + GetReplica(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (result servicefabric.ServiceResourceReplicaDescription, err error) + GetReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.ReplicaHealthModel, err error) + GetReplicaHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.ReplicaHealthModel, err error) + GetReplicaInfo(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (result servicefabric.ReplicaInfoModel, err error) + GetReplicaInfoList(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (result servicefabric.PagedReplicaInfoList, err error) + GetReplicas(ctx context.Context, applicationResourceName string, serviceResourceName string) (result servicefabric.PagedServiceResourceReplicaDescriptionList, err error) + GetService(ctx context.Context, applicationResourceName string, serviceResourceName string) (result servicefabric.ServiceResourceDescription, err error) + GetServiceBackupConfigurationInfo(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupConfigurationInfoList, err error) + GetServiceBackupList(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetServiceDescription(ctx context.Context, serviceID string, timeout *int64) (result servicefabric.ServiceDescriptionModel, err error) + GetServiceEventList(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListServiceEvent, err error) + GetServiceHealth(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ServiceHealth, err error) + GetServiceHealthUsingPolicy(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ServiceHealth, err error) + GetServiceInfo(ctx context.Context, applicationID string, serviceID string, timeout *int64) (result servicefabric.ServiceInfoModel, err error) + GetServiceInfoList(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (result servicefabric.PagedServiceInfoList, err error) + GetServiceManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (result servicefabric.ServiceTypeManifest, err error) + GetServiceNameInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.ServiceNameInfo, err error) + GetServices(ctx context.Context, applicationResourceName string) (result servicefabric.PagedServiceResourceDescriptionList, err error) + GetServicesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListServiceEvent, err error) + GetServiceTypeInfoByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (result servicefabric.ServiceTypeInfo, err error) + GetServiceTypeInfoList(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result servicefabric.ListServiceTypeInfo, err error) + GetSubNameInfoList(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (result servicefabric.PagedSubNameInfoList, err error) + GetUpgradeOrchestrationServiceState(ctx context.Context, timeout *int64) (result servicefabric.UpgradeOrchestrationServiceState, err error) + GetVolumeResource(ctx context.Context, volumeResourceName string) (result servicefabric.VolumeResourceDescription, err error) + InvokeContainerAPI(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody servicefabric.ContainerAPIRequestBody, timeout *int64) (result servicefabric.ContainerAPIResponse, err error) + InvokeInfrastructureCommand(ctx context.Context, command string, serviceID string, timeout *int64) (result servicefabric.String, err error) + InvokeInfrastructureQuery(ctx context.Context, command string, serviceID string, timeout *int64) (result servicefabric.String, err error) + PostChaosSchedule(ctx context.Context, chaosSchedule servicefabric.ChaosScheduleDescription, timeout *int64) (result autorest.Response, err error) + ProvisionApplicationType(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam servicefabric.BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (result autorest.Response, err error) + ProvisionCluster(ctx context.Context, provisionFabricDescription servicefabric.ProvisionFabricDescription, timeout *int64) (result autorest.Response, err error) + PutProperty(ctx context.Context, nameID string, propertyDescription servicefabric.PropertyDescription, timeout *int64) (result autorest.Response, err error) + RecoverAllPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) + RecoverPartition(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + RecoverServicePartitions(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + RecoverSystemPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) + RemoveComposeDeployment(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) + RemoveNodeState(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) + RemoveReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + ReportApplicationHealth(ctx context.Context, applicationID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportClusterHealth(ctx context.Context, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportNodeHealth(ctx context.Context, nodeName string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportPartitionHealth(ctx context.Context, partitionID uuid.UUID, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind servicefabric.ReplicaHealthReportServiceKind, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportServiceHealth(ctx context.Context, serviceID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ResetPartitionLoad(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + ResolveService(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (result servicefabric.ResolvedServicePartition, err error) + RestartDeployedCodePackage(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription servicefabric.RestartDeployedCodePackageDescription, timeout *int64) (result autorest.Response, err error) + RestartNode(ctx context.Context, nodeName string, restartNodeDescription servicefabric.RestartNodeDescription, timeout *int64) (result autorest.Response, err error) + RestartReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result autorest.Response, err error) + RestorePartition(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription servicefabric.RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (result autorest.Response, err error) + ResumeApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + ResumeApplicationUpgrade(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription servicefabric.ResumeApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + ResumeClusterUpgrade(ctx context.Context, resumeClusterUpgradeDescription servicefabric.ResumeClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + ResumePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + ResumeServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + RollbackApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + RollbackClusterUpgrade(ctx context.Context, timeout *int64) (result autorest.Response, err error) + SetUpgradeOrchestrationServiceState(ctx context.Context, upgradeOrchestrationServiceState servicefabric.UpgradeOrchestrationServiceState, timeout *int64) (result servicefabric.UpgradeOrchestrationServiceStateSummary, err error) + StartApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeDescription servicefabric.ApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartChaos(ctx context.Context, chaosParameters servicefabric.ChaosParameters, timeout *int64) (result autorest.Response, err error) + StartClusterConfigurationUpgrade(ctx context.Context, clusterConfigurationUpgradeDescription servicefabric.ClusterConfigurationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartClusterUpgrade(ctx context.Context, startClusterUpgradeDescription servicefabric.StartClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartComposeDeploymentUpgrade(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription servicefabric.ComposeDeploymentUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartDataLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode servicefabric.DataLossMode, timeout *int64) (result autorest.Response, err error) + StartNodeTransition(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType servicefabric.NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (result autorest.Response, err error) + StartPartitionRestart(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode servicefabric.RestartPartitionMode, timeout *int64) (result autorest.Response, err error) + StartQuorumLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode servicefabric.QuorumLossMode, quorumLossDuration int32, timeout *int64) (result autorest.Response, err error) + StopChaos(ctx context.Context, timeout *int64) (result autorest.Response, err error) + SubmitPropertyBatch(ctx context.Context, nameID string, propertyBatchDescriptionList servicefabric.PropertyBatchDescriptionList, timeout *int64) (result servicefabric.PropertyBatchInfoModel, err error) + SuspendApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + SuspendPartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + SuspendServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + UnprovisionApplicationType(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo servicefabric.UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (result autorest.Response, err error) + UnprovisionCluster(ctx context.Context, unprovisionFabricDescription servicefabric.UnprovisionFabricDescription, timeout *int64) (result autorest.Response, err error) + UpdateApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription servicefabric.ApplicationUpgradeUpdateDescription, timeout *int64) (result autorest.Response, err error) + UpdateBackupPolicy(ctx context.Context, backupPolicyDescription servicefabric.BackupPolicyDescription, backupPolicyName string, timeout *int64) (result autorest.Response, err error) + UpdateClusterUpgrade(ctx context.Context, updateClusterUpgradeDescription servicefabric.UpdateClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + UpdateRepairExecutionState(ctx context.Context, repairTask servicefabric.RepairTask) (result servicefabric.RepairTaskUpdateInfo, err error) + UpdateRepairTaskHealthPolicy(ctx context.Context, repairTaskUpdateHealthPolicyDescription servicefabric.RepairTaskUpdateHealthPolicyDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + UpdateService(ctx context.Context, serviceID string, serviceUpdateDescription servicefabric.BasicServiceUpdateDescription, timeout *int64) (result autorest.Response, err error) + UploadFile(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) + UploadFileChunk(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (result autorest.Response, err error) +} + +var _ BaseClientAPI = (*servicefabric.BaseClient)(nil) diff --git a/services/servicefabric/6.3/servicefabric/version.go b/services/servicefabric/6.3/servicefabric/version.go new file mode 100644 index 000000000000..1fd9dfdb70f8 --- /dev/null +++ b/services/servicefabric/6.3/servicefabric/version.go @@ -0,0 +1,30 @@ +package servicefabric + +import "github.com/Azure/azure-sdk-for-go/version" + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + version.Number + " servicefabric/6.3.0.9" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +} diff --git a/services/servicefabric/6.4/servicefabric/client.go b/services/servicefabric/6.4/servicefabric/client.go new file mode 100644 index 000000000000..5abfef335160 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/client.go @@ -0,0 +1,20617 @@ +// Package servicefabric implements the Azure ARM Servicefabric service API version 6.4.0.36. +// +// Service Fabric REST Client APIs allows management of Service Fabric clusters, applications and services. +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "github.com/satori/go.uuid" + "net/http" +) + +const ( + // DefaultBaseURI is the default URI used for the service Servicefabric + DefaultBaseURI = "http://localhost:19080" +) + +// BaseClient is the base client for Servicefabric. +type BaseClient struct { + autorest.Client + BaseURI string +} + +// New creates an instance of the BaseClient client. +func New() BaseClient { + return NewWithBaseURI(DefaultBaseURI) +} + +// NewWithBaseURI creates an instance of the BaseClient client. +func NewWithBaseURI(baseURI string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + } +} + +// BackupPartition creates a backup of the stateful persisted partition's state. In case the partition is already being +// periodically backed up, then by default the new backup is created at the same backup storage. One can also override +// the same by specifying the backup storage details as part of the request body. Once the backup is initiated, its +// progress can be tracked using the GetBackupProgress operation. +// In case, the operation times out, specify a greater backup timeout value in the query parameter. +// Parameters: +// partitionID - the identity of the partition. +// backupPartitionDescription - describes the parameters to backup the partition now. If not present, backup +// operation uses default parameters from the backup policy current associated with this partition. +// backupTimeout - specifies the maximum amount of time, in minutes, to wait for the backup operation to +// complete. Post that, the operation completes with timeout error. However, in certain corner cases it could +// be that though the operation returns back timeout, the backup actually goes through. In case of timeout +// error, its recommended to invoke this operation again with a greater timeout value. The default value for +// the same is 10 minutes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) BackupPartition(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *BackupPartitionDescription, backupTimeout *int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.BackupPartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "BackupPartition", err.Error()) + } + + req, err := client.BackupPartitionPreparer(ctx, partitionID, backupPartitionDescription, backupTimeout, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", nil, "Failure preparing request") + return + } + + resp, err := client.BackupPartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", resp, "Failure sending request") + return + } + + result, err = client.BackupPartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "BackupPartition", resp, "Failure responding to request") + } + + return +} + +// BackupPartitionPreparer prepares the BackupPartition request. +func (client BaseClient) BackupPartitionPreparer(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *BackupPartitionDescription, backupTimeout *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if backupTimeout != nil { + queryParameters["BackupTimeout"] = autorest.Encode("query", *backupTimeout) + } else { + queryParameters["BackupTimeout"] = autorest.Encode("query", 10) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Backup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if backupPartitionDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(backupPartitionDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// BackupPartitionSender sends the BackupPartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) BackupPartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// BackupPartitionResponder handles the response to the BackupPartition request. The method always +// closes the http.Response Body. +func (client BaseClient) BackupPartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CancelOperation the following APIs start fault operations that may be cancelled by using CancelOperation: +// StartDataLoss, StartQuorumLoss, StartPartitionRestart, StartNodeTransition. +// +// If force is false, then the specified user-induced operation will be gracefully stopped and cleaned up. If force is +// true, the command will be aborted, and some internal state +// may be left behind. Specifying force as true should be used with care. Calling this API with force set to true is +// not allowed until this API has already +// been called on the same test command with force set to false first, or unless the test command already has an +// OperationState of OperationState.RollingBack. +// Clarification: OperationState.RollingBack means that the system will be/is cleaning up internal system state caused +// by executing the command. It will not restore data if the +// test command was to cause data loss. For example, if you call StartDataLoss then call this API, the system will +// only clean up internal state from running the command. +// It will not restore the target partition's data, if the command progressed far enough to cause data loss. +// +// Important note: if this API is invoked with force==true, internal state may be left behind. +// Parameters: +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// force - indicates whether to gracefully roll back and clean up internal system state modified by executing +// the user-induced operation. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CancelOperation(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CancelOperation") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CancelOperation", err.Error()) + } + + req, err := client.CancelOperationPreparer(ctx, operationID, force, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", nil, "Failure preparing request") + return + } + + resp, err := client.CancelOperationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", resp, "Failure sending request") + return + } + + result, err = client.CancelOperationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelOperation", resp, "Failure responding to request") + } + + return +} + +// CancelOperationPreparer prepares the CancelOperation request. +func (client BaseClient) CancelOperationPreparer(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Force": autorest.Encode("query", force), + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Faults/$/Cancel"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CancelOperationSender sends the CancelOperation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CancelOperationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CancelOperationResponder handles the response to the CancelOperation request. The method always +// closes the http.Response Body. +func (client BaseClient) CancelOperationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CancelRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTaskCancelDescription - describes the repair task to be cancelled. +func (client BaseClient) CancelRepairTask(ctx context.Context, repairTaskCancelDescription RepairTaskCancelDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CancelRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskCancelDescription, + Constraints: []validation.Constraint{{Target: "repairTaskCancelDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CancelRepairTask", err.Error()) + } + + req, err := client.CancelRepairTaskPreparer(ctx, repairTaskCancelDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.CancelRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", resp, "Failure sending request") + return + } + + result, err = client.CancelRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CancelRepairTask", resp, "Failure responding to request") + } + + return +} + +// CancelRepairTaskPreparer prepares the CancelRepairTask request. +func (client BaseClient) CancelRepairTaskPreparer(ctx context.Context, repairTaskCancelDescription RepairTaskCancelDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/CancelRepairTask"), + autorest.WithJSON(repairTaskCancelDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CancelRepairTaskSender sends the CancelRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CancelRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CancelRepairTaskResponder handles the response to the CancelRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) CancelRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CommitImageStoreUploadSession when all file chunks have been uploaded, the upload session needs to be committed +// explicitly to complete the upload. Image store preserves the upload session until the expiration time, which is 30 +// minutes after the last chunk received. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CommitImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CommitImageStoreUploadSession") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CommitImageStoreUploadSession", err.Error()) + } + + req, err := client.CommitImageStoreUploadSessionPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", nil, "Failure preparing request") + return + } + + resp, err := client.CommitImageStoreUploadSessionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", resp, "Failure sending request") + return + } + + result, err = client.CommitImageStoreUploadSessionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CommitImageStoreUploadSession", resp, "Failure responding to request") + } + + return +} + +// CommitImageStoreUploadSessionPreparer prepares the CommitImageStoreUploadSession request. +func (client BaseClient) CommitImageStoreUploadSessionPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/CommitUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CommitImageStoreUploadSessionSender sends the CommitImageStoreUploadSession request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CommitImageStoreUploadSessionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CommitImageStoreUploadSessionResponder handles the response to the CommitImageStoreUploadSession request. The method always +// closes the http.Response Body. +func (client BaseClient) CommitImageStoreUploadSessionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CopyImageStoreContent copies the image store content from the source image store relative path to the destination +// image store relative path. +// Parameters: +// imageStoreCopyDescription - describes the copy description for the image store. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CopyImageStoreContent(ctx context.Context, imageStoreCopyDescription ImageStoreCopyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CopyImageStoreContent") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: imageStoreCopyDescription, + Constraints: []validation.Constraint{{Target: "imageStoreCopyDescription.RemoteSource", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "imageStoreCopyDescription.RemoteDestination", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CopyImageStoreContent", err.Error()) + } + + req, err := client.CopyImageStoreContentPreparer(ctx, imageStoreCopyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.CopyImageStoreContentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.CopyImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CopyImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// CopyImageStoreContentPreparer prepares the CopyImageStoreContent request. +func (client BaseClient) CopyImageStoreContentPreparer(ctx context.Context, imageStoreCopyDescription ImageStoreCopyDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/Copy"), + autorest.WithJSON(imageStoreCopyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CopyImageStoreContentSender sends the CopyImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CopyImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CopyImageStoreContentResponder handles the response to the CopyImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) CopyImageStoreContentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateApplication creates a Service Fabric application using the specified description. +// Parameters: +// applicationDescription - description for creating an application. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateApplication(ctx context.Context, applicationDescription ApplicationDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateApplication") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationDescription, + Constraints: []validation.Constraint{{Target: "applicationDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.TypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.TypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationDescription.ApplicationCapacity", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MinimumNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MinimumNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + {Target: "applicationDescription.ApplicationCapacity.MaximumNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "applicationDescription.ApplicationCapacity.MaximumNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateApplication", err.Error()) + } + + req, err := client.CreateApplicationPreparer(ctx, applicationDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", nil, "Failure preparing request") + return + } + + resp, err := client.CreateApplicationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", resp, "Failure sending request") + return + } + + result, err = client.CreateApplicationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateApplication", resp, "Failure responding to request") + } + + return +} + +// CreateApplicationPreparer prepares the CreateApplication request. +func (client BaseClient) CreateApplicationPreparer(ctx context.Context, applicationDescription ApplicationDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Applications/$/Create"), + autorest.WithJSON(applicationDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateApplicationSender sends the CreateApplication request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateApplicationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateApplicationResponder handles the response to the CreateApplication request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateApplicationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateBackupPolicy creates a backup policy which can be associated later with a Service Fabric application, service +// or a partition for periodic backup. +// Parameters: +// backupPolicyDescription - describes the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateBackupPolicy(ctx context.Context, backupPolicyDescription BackupPolicyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: backupPolicyDescription, + Constraints: []validation.Constraint{{Target: "backupPolicyDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.AutoRestoreOnDataLoss", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMaximum, Rule: int64(255), Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "backupPolicyDescription.Schedule", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateBackupPolicy", err.Error()) + } + + req, err := client.CreateBackupPolicyPreparer(ctx, backupPolicyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.CreateBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.CreateBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// CreateBackupPolicyPreparer prepares the CreateBackupPolicy request. +func (client BaseClient) CreateBackupPolicyPreparer(ctx context.Context, backupPolicyDescription BackupPolicyDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/BackupPolicies/$/Create"), + autorest.WithJSON(backupPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateBackupPolicySender sends the CreateBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateBackupPolicyResponder handles the response to the CreateBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateComposeDeployment compose is a file format that describes multi-container applications. This API allows +// deploying container based applications defined in compose format in a Service Fabric cluster. Once the deployment is +// created, its status can be tracked via the `GetComposeDeploymentStatus` API. +// Parameters: +// createComposeDeploymentDescription - describes the compose deployment that needs to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateComposeDeployment(ctx context.Context, createComposeDeploymentDescription CreateComposeDeploymentDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateComposeDeployment") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: createComposeDeploymentDescription, + Constraints: []validation.Constraint{{Target: "createComposeDeploymentDescription.DeploymentName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "createComposeDeploymentDescription.ComposeFileContent", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateComposeDeployment", err.Error()) + } + + req, err := client.CreateComposeDeploymentPreparer(ctx, createComposeDeploymentDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", nil, "Failure preparing request") + return + } + + resp, err := client.CreateComposeDeploymentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", resp, "Failure sending request") + return + } + + result, err = client.CreateComposeDeploymentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateComposeDeployment", resp, "Failure responding to request") + } + + return +} + +// CreateComposeDeploymentPreparer prepares the CreateComposeDeployment request. +func (client BaseClient) CreateComposeDeploymentPreparer(ctx context.Context, createComposeDeploymentDescription CreateComposeDeploymentDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ComposeDeployments/$/Create"), + autorest.WithJSON(createComposeDeploymentDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateComposeDeploymentSender sends the CreateComposeDeployment request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateComposeDeploymentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateComposeDeploymentResponder handles the response to the CreateComposeDeployment request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateComposeDeploymentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateName creates the specified Service Fabric name. +// Parameters: +// nameDescription - describes the Service Fabric name to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateName(ctx context.Context, nameDescription NameDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateName") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: nameDescription, + Constraints: []validation.Constraint{{Target: "nameDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateName", err.Error()) + } + + req, err := client.CreateNamePreparer(ctx, nameDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", nil, "Failure preparing request") + return + } + + resp, err := client.CreateNameSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", resp, "Failure sending request") + return + } + + result, err = client.CreateNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateName", resp, "Failure responding to request") + } + + return +} + +// CreateNamePreparer prepares the CreateName request. +func (client BaseClient) CreateNamePreparer(ctx context.Context, nameDescription NameDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Names/$/Create"), + autorest.WithJSON(nameDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateNameSender sends the CreateName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateNameResponder handles the response to the CreateName request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateNameResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateRepairTask for clusters that have the Repair Manager Service configured, +// this API provides a way to create repair tasks that run automatically or manually. +// For repair tasks that run automatically, an appropriate repair executor +// must be running for each repair action to run automatically. +// These are currently only available in specially-configured Azure Cloud Services. +// +// To create a manual repair task, provide the set of impacted node names and the +// expected impact. When the state of the created repair task changes to approved, +// you can safely perform repair actions on those nodes. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTask - describes the repair task to be created or updated. +func (client BaseClient) CreateRepairTask(ctx context.Context, repairTask RepairTask) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTask, + Constraints: []validation.Constraint{{Target: "repairTask.TaskID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "repairTask.Action", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateRepairTask", err.Error()) + } + + req, err := client.CreateRepairTaskPreparer(ctx, repairTask) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.CreateRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", resp, "Failure sending request") + return + } + + result, err = client.CreateRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateRepairTask", resp, "Failure responding to request") + } + + return +} + +// CreateRepairTaskPreparer prepares the CreateRepairTask request. +func (client BaseClient) CreateRepairTaskPreparer(ctx context.Context, repairTask RepairTask) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/CreateRepairTask"), + autorest.WithJSON(repairTask), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateRepairTaskSender sends the CreateRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateRepairTaskResponder handles the response to the CreateRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CreateService this api allows creating a new Service Fabric stateless or stateful service under a specified Service +// Fabric application. The description for creating the service includes partitioning information and optional +// properties for placement and load balancing. Some of the properties can later be modified using `UpdateService` API. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceDescription - the information necessary to create a service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateService(ctx context.Context, applicationID string, serviceDescription BasicServiceDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: serviceDescription, + Constraints: []validation.Constraint{{Target: "serviceDescription.ServiceName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceDescription.ServiceTypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceDescription.PartitionDescription", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateService", err.Error()) + } + + req, err := client.CreateServicePreparer(ctx, applicationID, serviceDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", nil, "Failure preparing request") + return + } + + resp, err := client.CreateServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", resp, "Failure sending request") + return + } + + result, err = client.CreateServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateService", resp, "Failure responding to request") + } + + return +} + +// CreateServicePreparer prepares the CreateService request. +func (client BaseClient) CreateServicePreparer(ctx context.Context, applicationID string, serviceDescription BasicServiceDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/$/Create", pathParameters), + autorest.WithJSON(serviceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateServiceSender sends the CreateService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateServiceResponder handles the response to the CreateService request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// CreateServiceFromTemplate creates a Service Fabric service from the service template defined in the application +// manifest. A service template contains the properties that will be same for the service instance of the same type. +// The API allows overriding the properties that are usually different for different services of the same service type. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceFromTemplateDescription - describes the service that needs to be created from the template defined in +// the application manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) CreateServiceFromTemplate(ctx context.Context, applicationID string, serviceFromTemplateDescription ServiceFromTemplateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.CreateServiceFromTemplate") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: serviceFromTemplateDescription, + Constraints: []validation.Constraint{{Target: "serviceFromTemplateDescription.ApplicationName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceFromTemplateDescription.ServiceName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "serviceFromTemplateDescription.ServiceTypeName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "CreateServiceFromTemplate", err.Error()) + } + + req, err := client.CreateServiceFromTemplatePreparer(ctx, applicationID, serviceFromTemplateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateServiceFromTemplateSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", resp, "Failure sending request") + return + } + + result, err = client.CreateServiceFromTemplateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "CreateServiceFromTemplate", resp, "Failure responding to request") + } + + return +} + +// CreateServiceFromTemplatePreparer prepares the CreateServiceFromTemplate request. +func (client BaseClient) CreateServiceFromTemplatePreparer(ctx context.Context, applicationID string, serviceFromTemplateDescription ServiceFromTemplateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/$/CreateFromTemplate", pathParameters), + autorest.WithJSON(serviceFromTemplateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateServiceFromTemplateSender sends the CreateServiceFromTemplate request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) CreateServiceFromTemplateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateServiceFromTemplateResponder handles the response to the CreateServiceFromTemplate request. The method always +// closes the http.Response Body. +func (client BaseClient) CreateServiceFromTemplateResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteApplication an application must be created before it can be deleted. Deleting an application will delete all +// services that are part of that application. By default, Service Fabric will try to close service replicas in a +// graceful manner and then delete the service. However, if a service is having issues closing the replica gracefully, +// the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to skip the graceful close +// sequence and forcefully delete the application and all of its services. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteApplication(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteApplication") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteApplication", err.Error()) + } + + req, err := client.DeleteApplicationPreparer(ctx, applicationID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteApplicationSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", resp, "Failure sending request") + return + } + + result, err = client.DeleteApplicationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteApplication", resp, "Failure responding to request") + } + + return +} + +// DeleteApplicationPreparer prepares the DeleteApplication request. +func (client BaseClient) DeleteApplicationPreparer(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteApplicationSender sends the DeleteApplication request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteApplicationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteApplicationResponder handles the response to the DeleteApplication request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteApplicationResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteBackupPolicy deletes an existing backup policy. A backup policy must be created before it can be deleted. A +// currently active backup policy, associated with any Service Fabric application, service or partition, cannot be +// deleted without first deleting the mapping. +// Parameters: +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteBackupPolicy(ctx context.Context, backupPolicyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteBackupPolicy", err.Error()) + } + + req, err := client.DeleteBackupPolicyPreparer(ctx, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.DeleteBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// DeleteBackupPolicyPreparer prepares the DeleteBackupPolicy request. +func (client BaseClient) DeleteBackupPolicyPreparer(ctx context.Context, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteBackupPolicySender sends the DeleteBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteBackupPolicyResponder handles the response to the DeleteBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteImageStoreContent deletes existing image store content being found within the given image store relative path. +// This command can be used to delete uploaded application packages once they are provisioned. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteImageStoreContent") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteImageStoreContent", err.Error()) + } + + req, err := client.DeleteImageStoreContentPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteImageStoreContentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.DeleteImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// DeleteImageStoreContentPreparer prepares the DeleteImageStoreContent request. +func (client BaseClient) DeleteImageStoreContentPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteImageStoreContentSender sends the DeleteImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteImageStoreContentResponder handles the response to the DeleteImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteImageStoreContentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteImageStoreUploadSession the DELETE request will cause the existing upload session to expire and remove any +// previously uploaded file chunks. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteImageStoreUploadSession") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteImageStoreUploadSession", err.Error()) + } + + req, err := client.DeleteImageStoreUploadSessionPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteImageStoreUploadSessionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", resp, "Failure sending request") + return + } + + result, err = client.DeleteImageStoreUploadSessionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteImageStoreUploadSession", resp, "Failure responding to request") + } + + return +} + +// DeleteImageStoreUploadSessionPreparer prepares the DeleteImageStoreUploadSession request. +func (client BaseClient) DeleteImageStoreUploadSessionPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/DeleteUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteImageStoreUploadSessionSender sends the DeleteImageStoreUploadSession request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteImageStoreUploadSessionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteImageStoreUploadSessionResponder handles the response to the DeleteImageStoreUploadSession request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteImageStoreUploadSessionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteName deletes the specified Service Fabric name. A name must be created before it can be deleted. Deleting a +// name with child properties will fail. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteName(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteName") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteName", err.Error()) + } + + req, err := client.DeleteNamePreparer(ctx, nameID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteNameSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", resp, "Failure sending request") + return + } + + result, err = client.DeleteNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteName", resp, "Failure responding to request") + } + + return +} + +// DeleteNamePreparer prepares the DeleteName request. +func (client BaseClient) DeleteNamePreparer(ctx context.Context, nameID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteNameSender sends the DeleteName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteNameResponder handles the response to the DeleteName request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteNameResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteProperty deletes the specified Service Fabric property under a given name. A property must be created before +// it can be deleted. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyName - specifies the name of the property to get. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteProperty(ctx context.Context, nameID string, propertyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteProperty") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteProperty", err.Error()) + } + + req, err := client.DeletePropertyPreparer(ctx, nameID, propertyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", nil, "Failure preparing request") + return + } + + resp, err := client.DeletePropertySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", resp, "Failure sending request") + return + } + + result, err = client.DeletePropertyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteProperty", resp, "Failure responding to request") + } + + return +} + +// DeletePropertyPreparer prepares the DeleteProperty request. +func (client BaseClient) DeletePropertyPreparer(ctx context.Context, nameID string, propertyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "PropertyName": autorest.Encode("query", propertyName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeletePropertySender sends the DeleteProperty request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeletePropertySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeletePropertyResponder handles the response to the DeleteProperty request. The method always +// closes the http.Response Body. +func (client BaseClient) DeletePropertyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// repairTaskDeleteDescription - describes the repair task to be deleted. +func (client BaseClient) DeleteRepairTask(ctx context.Context, repairTaskDeleteDescription RepairTaskDeleteDescription) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteRepairTask") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskDeleteDescription, + Constraints: []validation.Constraint{{Target: "repairTaskDeleteDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteRepairTask", err.Error()) + } + + req, err := client.DeleteRepairTaskPreparer(ctx, repairTaskDeleteDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteRepairTaskSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", resp, "Failure sending request") + return + } + + result, err = client.DeleteRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteRepairTask", resp, "Failure responding to request") + } + + return +} + +// DeleteRepairTaskPreparer prepares the DeleteRepairTask request. +func (client BaseClient) DeleteRepairTaskPreparer(ctx context.Context, repairTaskDeleteDescription RepairTaskDeleteDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/DeleteRepairTask"), + autorest.WithJSON(repairTaskDeleteDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteRepairTaskSender sends the DeleteRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteRepairTaskResponder handles the response to the DeleteRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteRepairTaskResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeleteService a service must be created before it can be deleted. By default, Service Fabric will try to close +// service replicas in a graceful manner and then delete the service. However, if the service is having issues closing +// the replica gracefully, the delete operation may take a long time or get stuck. Use the optional ForceRemove flag to +// skip the graceful close sequence and forcefully delete the service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeleteService(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeleteService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeleteService", err.Error()) + } + + req, err := client.DeleteServicePreparer(ctx, serviceID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", resp, "Failure sending request") + return + } + + result, err = client.DeleteServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeleteService", resp, "Failure responding to request") + } + + return +} + +// DeleteServicePreparer prepares the DeleteService request. +func (client BaseClient) DeleteServicePreparer(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteServiceSender sends the DeleteService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeleteServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteServiceResponder handles the response to the DeleteService request. The method always +// closes the http.Response Body. +func (client BaseClient) DeleteServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DeployServicePackageToNode this API provides a way to download code packages including the container images on a +// specific node outside of the normal application deployment and upgrade path. This is useful for the large code +// packages and container images to be present on the node before the actual application deployment and upgrade, thus +// significantly reducing the total time required for the deployment or upgrade. +// Parameters: +// nodeName - the name of the node. +// deployServicePackageToNodeDescription - describes information for deploying a service package to a Service +// Fabric node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DeployServicePackageToNode(ctx context.Context, nodeName string, deployServicePackageToNodeDescription DeployServicePackageToNodeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DeployServicePackageToNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: deployServicePackageToNodeDescription, + Constraints: []validation.Constraint{{Target: "deployServicePackageToNodeDescription.ServiceManifestName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.ApplicationTypeName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.ApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "deployServicePackageToNodeDescription.NodeName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DeployServicePackageToNode", err.Error()) + } + + req, err := client.DeployServicePackageToNodePreparer(ctx, nodeName, deployServicePackageToNodeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", nil, "Failure preparing request") + return + } + + resp, err := client.DeployServicePackageToNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", resp, "Failure sending request") + return + } + + result, err = client.DeployServicePackageToNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DeployServicePackageToNode", resp, "Failure responding to request") + } + + return +} + +// DeployServicePackageToNodePreparer prepares the DeployServicePackageToNode request. +func (client BaseClient) DeployServicePackageToNodePreparer(ctx context.Context, nodeName string, deployServicePackageToNodeDescription DeployServicePackageToNodeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/DeployServicePackage", pathParameters), + autorest.WithJSON(deployServicePackageToNodeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeployServicePackageToNodeSender sends the DeployServicePackageToNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DeployServicePackageToNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeployServicePackageToNodeResponder handles the response to the DeployServicePackageToNode request. The method always +// closes the http.Response Body. +func (client BaseClient) DeployServicePackageToNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableApplicationBackup disables periodic backup of Service Fabric application which was previously enabled. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// disableBackupDescription - specifies the parameters to disable backup for any backup entity. +func (client BaseClient) DisableApplicationBackup(ctx context.Context, applicationID string, timeout *int64, disableBackupDescription *DisableBackupDescription) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: disableBackupDescription, + Constraints: []validation.Constraint{{Target: "disableBackupDescription", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "disableBackupDescription.CleanBackup", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableApplicationBackup", err.Error()) + } + + req, err := client.DisableApplicationBackupPreparer(ctx, applicationID, timeout, disableBackupDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisableApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.DisableApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// DisableApplicationBackupPreparer prepares the DisableApplicationBackup request. +func (client BaseClient) DisableApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64, disableBackupDescription *DisableBackupDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if disableBackupDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(disableBackupDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableApplicationBackupSender sends the DisableApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableApplicationBackupResponder handles the response to the DisableApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableNode deactivate a Service Fabric cluster node with the specified deactivation intent. Once the deactivation +// is in progress, the deactivation intent can be increased, but not decreased (for example, a node that is deactivated +// with the Pause intent can be deactivated further with Restart, but not the other way around. Nodes may be +// reactivated using the Activate a node operation any time after they are deactivated. If the deactivation is not +// complete, this will cancel the deactivation. A node that goes down and comes back up while deactivated will still +// need to be reactivated before services will be placed on that node. +// Parameters: +// nodeName - the name of the node. +// deactivationIntentDescription - describes the intent or reason for deactivating the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisableNode(ctx context.Context, nodeName string, deactivationIntentDescription DeactivationIntentDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableNode", err.Error()) + } + + req, err := client.DisableNodePreparer(ctx, nodeName, deactivationIntentDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", nil, "Failure preparing request") + return + } + + resp, err := client.DisableNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", resp, "Failure sending request") + return + } + + result, err = client.DisableNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableNode", resp, "Failure responding to request") + } + + return +} + +// DisableNodePreparer prepares the DisableNode request. +func (client BaseClient) DisableNodePreparer(ctx context.Context, nodeName string, deactivationIntentDescription DeactivationIntentDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Deactivate", pathParameters), + autorest.WithJSON(deactivationIntentDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableNodeSender sends the DisableNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableNodeResponder handles the response to the DisableNode request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisablePartitionBackup disables periodic backup of partition which was previously enabled. Backup must be explicitly +// enabled before it can be disabled. +// In case the backup is enabled for the Service Fabric application or service, which this partition is part of, this +// partition would continue to be periodically backed up as per the policy mapped at the higher level entity. +// Parameters: +// partitionID - the identity of the partition. +// disableBackupDescription - specifies the parameters to disable backup for any backup entity. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisablePartitionBackup(ctx context.Context, partitionID uuid.UUID, disableBackupDescription *DisableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisablePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: disableBackupDescription, + Constraints: []validation.Constraint{{Target: "disableBackupDescription", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "disableBackupDescription.CleanBackup", Name: validation.Null, Rule: true, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisablePartitionBackup", err.Error()) + } + + req, err := client.DisablePartitionBackupPreparer(ctx, partitionID, disableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisablePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.DisablePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisablePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// DisablePartitionBackupPreparer prepares the DisablePartitionBackup request. +func (client BaseClient) DisablePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, disableBackupDescription *DisableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if disableBackupDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(disableBackupDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisablePartitionBackupSender sends the DisablePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisablePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisablePartitionBackupResponder handles the response to the DisablePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisablePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// DisableServiceBackup disables periodic backup of Service Fabric service which was previously enabled. Backup must be +// explicitly enabled before it can be disabled. +// In case the backup is enabled for the Service Fabric application, which this service is part of, this service would +// continue to be periodically backed up as per the policy mapped at the application level. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// disableBackupDescription - specifies the parameters to disable backup for any backup entity. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) DisableServiceBackup(ctx context.Context, serviceID string, disableBackupDescription *DisableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.DisableServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: disableBackupDescription, + Constraints: []validation.Constraint{{Target: "disableBackupDescription", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "disableBackupDescription.CleanBackup", Name: validation.Null, Rule: true, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "DisableServiceBackup", err.Error()) + } + + req, err := client.DisableServiceBackupPreparer(ctx, serviceID, disableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.DisableServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.DisableServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "DisableServiceBackup", resp, "Failure responding to request") + } + + return +} + +// DisableServiceBackupPreparer prepares the DisableServiceBackup request. +func (client BaseClient) DisableServiceBackupPreparer(ctx context.Context, serviceID string, disableBackupDescription *DisableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/DisableBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if disableBackupDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(disableBackupDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DisableServiceBackupSender sends the DisableServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) DisableServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DisableServiceBackupResponder handles the response to the DisableServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) DisableServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableApplicationBackup enables periodic backup of stateful partitions which are part of this Service Fabric +// application. Each partition is backed up individually as per the specified backup policy description. +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableApplicationBackup(ctx context.Context, applicationID string, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableApplicationBackup", err.Error()) + } + + req, err := client.EnableApplicationBackupPreparer(ctx, applicationID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnableApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.EnableApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// EnableApplicationBackupPreparer prepares the EnableApplicationBackup request. +func (client BaseClient) EnableApplicationBackupPreparer(ctx context.Context, applicationID string, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableApplicationBackupSender sends the EnableApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableApplicationBackupResponder handles the response to the EnableApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableNode activates a Service Fabric cluster node that is currently deactivated. Once activated, the node will +// again become a viable target for placing new replicas, and any deactivated replicas remaining on the node will be +// reactivated. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableNode(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableNode", err.Error()) + } + + req, err := client.EnableNodePreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", nil, "Failure preparing request") + return + } + + resp, err := client.EnableNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", resp, "Failure sending request") + return + } + + result, err = client.EnableNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableNode", resp, "Failure responding to request") + } + + return +} + +// EnableNodePreparer prepares the EnableNode request. +func (client BaseClient) EnableNodePreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Activate", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableNodeSender sends the EnableNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableNodeResponder handles the response to the EnableNode request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnablePartitionBackup enables periodic backup of stateful persisted partition. Each partition is backed up as per +// the specified backup policy description. In case the application or service, which is partition is part of, is +// already enabled for backup then this operation would override the policy being used to take the periodic backup of +// this partition. +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// partitionID - the identity of the partition. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnablePartitionBackup(ctx context.Context, partitionID uuid.UUID, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnablePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnablePartitionBackup", err.Error()) + } + + req, err := client.EnablePartitionBackupPreparer(ctx, partitionID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnablePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.EnablePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnablePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// EnablePartitionBackupPreparer prepares the EnablePartitionBackup request. +func (client BaseClient) EnablePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnablePartitionBackupSender sends the EnablePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnablePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnablePartitionBackupResponder handles the response to the EnablePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnablePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// EnableServiceBackup enables periodic backup of stateful partitions which are part of this Service Fabric service. +// Each partition is backed up individually as per the specified backup policy description. In case the application, +// which the service is part of, is already enabled for backup then this operation would override the policy being used +// to take the periodic backup for this service and its partitions (unless explicitly overridden at the partition +// level). +// Note only C# based Reliable Actor and Reliable Stateful services are currently supported for periodic backup. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// enableBackupDescription - specifies the parameters for enabling backup. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) EnableServiceBackup(ctx context.Context, serviceID string, enableBackupDescription EnableBackupDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.EnableServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: enableBackupDescription, + Constraints: []validation.Constraint{{Target: "enableBackupDescription.BackupPolicyName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "EnableServiceBackup", err.Error()) + } + + req, err := client.EnableServiceBackupPreparer(ctx, serviceID, enableBackupDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.EnableServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.EnableServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "EnableServiceBackup", resp, "Failure responding to request") + } + + return +} + +// EnableServiceBackupPreparer prepares the EnableServiceBackup request. +func (client BaseClient) EnableServiceBackupPreparer(ctx context.Context, serviceID string, enableBackupDescription EnableBackupDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/EnableBackup", pathParameters), + autorest.WithJSON(enableBackupDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// EnableServiceBackupSender sends the EnableServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) EnableServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// EnableServiceBackupResponder handles the response to the EnableServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) EnableServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ForceApproveRepairTask this API supports the Service Fabric platform; it is not meant to be used directly from your +// code. +// Parameters: +// repairTaskApproveDescription - describes the repair task to be approved. +func (client BaseClient) ForceApproveRepairTask(ctx context.Context, repairTaskApproveDescription RepairTaskApproveDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ForceApproveRepairTask") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskApproveDescription, + Constraints: []validation.Constraint{{Target: "repairTaskApproveDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ForceApproveRepairTask", err.Error()) + } + + req, err := client.ForceApproveRepairTaskPreparer(ctx, repairTaskApproveDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", nil, "Failure preparing request") + return + } + + resp, err := client.ForceApproveRepairTaskSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", resp, "Failure sending request") + return + } + + result, err = client.ForceApproveRepairTaskResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ForceApproveRepairTask", resp, "Failure responding to request") + } + + return +} + +// ForceApproveRepairTaskPreparer prepares the ForceApproveRepairTask request. +func (client BaseClient) ForceApproveRepairTaskPreparer(ctx context.Context, repairTaskApproveDescription RepairTaskApproveDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/ForceApproveRepairTask"), + autorest.WithJSON(repairTaskApproveDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ForceApproveRepairTaskSender sends the ForceApproveRepairTask request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ForceApproveRepairTaskSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ForceApproveRepairTaskResponder handles the response to the ForceApproveRepairTask request. The method always +// closes the http.Response Body. +func (client BaseClient) ForceApproveRepairTaskResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetAadMetadata gets the Azure Active Directory metadata used for secured connection to cluster. +// This API is not supposed to be called separately. It provides information needed to set up an Azure Active Directory +// secured connection with a Service Fabric cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetAadMetadata(ctx context.Context, timeout *int64) (result AadMetadataObject, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetAadMetadata") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetAadMetadata", err.Error()) + } + + req, err := client.GetAadMetadataPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", nil, "Failure preparing request") + return + } + + resp, err := client.GetAadMetadataSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", resp, "Failure sending request") + return + } + + result, err = client.GetAadMetadataResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAadMetadata", resp, "Failure responding to request") + } + + return +} + +// GetAadMetadataPreparer prepares the GetAadMetadata request. +func (client BaseClient) GetAadMetadataPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetAadMetadata"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetAadMetadataSender sends the GetAadMetadata request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetAadMetadataSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetAadMetadataResponder handles the response to the GetAadMetadata request. The method always +// closes the http.Response Body. +func (client BaseClient) GetAadMetadataResponder(resp *http.Response) (result AadMetadataObject, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetAllEntitiesBackedUpByPolicy returns a list of Service Fabric application, service or partition which are +// associated with this backup policy. +// Parameters: +// backupPolicyName - the name of the backup policy. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetAllEntitiesBackedUpByPolicy(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupEntityList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetAllEntitiesBackedUpByPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", err.Error()) + } + + req, err := client.GetAllEntitiesBackedUpByPolicyPreparer(ctx, backupPolicyName, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetAllEntitiesBackedUpByPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetAllEntitiesBackedUpByPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetAllEntitiesBackedUpByPolicy", resp, "Failure responding to request") + } + + return +} + +// GetAllEntitiesBackedUpByPolicyPreparer prepares the GetAllEntitiesBackedUpByPolicy request. +func (client BaseClient) GetAllEntitiesBackedUpByPolicyPreparer(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/GetBackupEnabledEntities", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetAllEntitiesBackedUpByPolicySender sends the GetAllEntitiesBackedUpByPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetAllEntitiesBackedUpByPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetAllEntitiesBackedUpByPolicyResponder handles the response to the GetAllEntitiesBackedUpByPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetAllEntitiesBackedUpByPolicyResponder(resp *http.Response) (result PagedBackupEntityList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationBackupConfigurationInfo gets the Service Fabric backup configuration information for the application +// and the services and partitions under this application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationBackupConfigurationInfo(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupConfigurationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetApplicationBackupConfigurationInfoPreparer(ctx, applicationID, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationBackupConfigurationInfoPreparer prepares the GetApplicationBackupConfigurationInfo request. +func (client BaseClient) GetApplicationBackupConfigurationInfoPreparer(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationBackupConfigurationInfoSender sends the GetApplicationBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationBackupConfigurationInfoResponder handles the response to the GetApplicationBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationBackupConfigurationInfoResponder(resp *http.Response) (result PagedBackupConfigurationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationBackupList returns a list of backups available for every partition in this Service Fabric application. +// The server enumerates all the backups available at the backup location configured in the backup policy. It also +// allows filtering of the result based on start and end datetime or just fetching the latest available backup for +// every partition. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetApplicationBackupList(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationBackupList", err.Error()) + } + + req, err := client.GetApplicationBackupListPreparer(ctx, applicationID, timeout, latest, startDateTimeFilter, endDateTimeFilter, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationBackupList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationBackupListPreparer prepares the GetApplicationBackupList request. +func (client BaseClient) GetApplicationBackupListPreparer(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationBackupListSender sends the GetApplicationBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationBackupListResponder handles the response to the GetApplicationBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationEventList the response is list of ApplicationEvent objects. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetApplicationEventList(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListApplicationEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationEventList", err.Error()) + } + + req, err := client.GetApplicationEventListPreparer(ctx, applicationID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationEventList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationEventListPreparer prepares the GetApplicationEventList request. +func (client BaseClient) GetApplicationEventListPreparer(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Applications/{applicationId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationEventListSender sends the GetApplicationEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationEventListResponder handles the response to the GetApplicationEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationEventListResponder(resp *http.Response) (result ListApplicationEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationHealth returns the heath state of the service fabric application. The response reports either Ok, +// Error or Warning health state. If the entity is not found in the health store, it will return Error. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedApplicationsHealthStateFilter - allows filtering of the deployed applications health state objects +// returned in the result of application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. Only +// deployed applications that match the filter will be returned. +// All deployed applications are used to evaluate the aggregated health state. If not specified, all entries +// are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values, obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of deployed applications with HealthState value of +// OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// servicesHealthStateFilter - allows filtering of the services health state objects returned in the result of +// services health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only services that match the filter are returned. All services are used to evaluate the aggregated health +// state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of services +// with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationHealth(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result ApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationHealth", err.Error()) + } + + req, err := client.GetApplicationHealthPreparer(ctx, applicationID, eventsHealthStateFilter, deployedApplicationsHealthStateFilter, servicesHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// GetApplicationHealthPreparer prepares the GetApplicationHealth request. +func (client BaseClient) GetApplicationHealthPreparer(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedApplicationsHealthStateFilter != nil { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", *deployedApplicationsHealthStateFilter) + } else { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if servicesHealthStateFilter != nil { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", *servicesHealthStateFilter) + } else { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationHealthSender sends the GetApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationHealthResponder handles the response to the GetApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationHealthResponder(resp *http.Response) (result ApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationHealthUsingPolicy gets the health of a Service Fabric application. Use EventsHealthStateFilter to +// filter the collection of health events reported on the node based on the health state. Use ClusterHealthPolicies to +// override the health policies used to evaluate the health. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedApplicationsHealthStateFilter - allows filtering of the deployed applications health state objects +// returned in the result of application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. Only +// deployed applications that match the filter will be returned. +// All deployed applications are used to evaluate the aggregated health state. If not specified, all entries +// are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values, obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of deployed applications with HealthState value of +// OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// servicesHealthStateFilter - allows filtering of the services health state objects returned in the result of +// services health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only services that match the filter are returned. All services are used to evaluate the aggregated health +// state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of services +// with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationHealthUsingPolicy(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result ApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", err.Error()) + } + + req, err := client.GetApplicationHealthUsingPolicyPreparer(ctx, applicationID, eventsHealthStateFilter, deployedApplicationsHealthStateFilter, servicesHealthStateFilter, excludeHealthStatistics, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetApplicationHealthUsingPolicyPreparer prepares the GetApplicationHealthUsingPolicy request. +func (client BaseClient) GetApplicationHealthUsingPolicyPreparer(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedApplicationsHealthStateFilter != nil { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", *deployedApplicationsHealthStateFilter) + } else { + queryParameters["DeployedApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if servicesHealthStateFilter != nil { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", *servicesHealthStateFilter) + } else { + queryParameters["ServicesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationHealthUsingPolicySender sends the GetApplicationHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationHealthUsingPolicyResponder handles the response to the GetApplicationHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationHealthUsingPolicyResponder(resp *http.Response) (result ApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationInfo returns the information about the application that was created or in the process of being created +// in the Service Fabric cluster and whose name matches the one specified as the parameter. The response includes the +// name, type, status, parameters, and other details about the application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationInfo(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (result ApplicationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationInfo", err.Error()) + } + + req, err := client.GetApplicationInfoPreparer(ctx, applicationID, excludeApplicationParameters, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationInfoPreparer prepares the GetApplicationInfo request. +func (client BaseClient) GetApplicationInfoPreparer(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationInfoSender sends the GetApplicationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationInfoResponder handles the response to the GetApplicationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationInfoResponder(resp *http.Response) (result ApplicationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationInfoList gets the information about the applications that were created or in the process of being +// created in the Service Fabric cluster and match the specified filters. The response includes the name, type, status, +// parameters, and other details about the application. If the applications do not fit in a page, one page of results +// is returned as well as a continuation token, which can be used to get the next page. Filters ApplicationTypeName and +// ApplicationDefinitionKindFilter cannot be specified at the same time. +// Parameters: +// applicationDefinitionKindFilter - used to filter on ApplicationDefinitionKind, which is the mechanism used +// to define a Service Fabric application. +// - Default - Default value, which performs the same function as selecting "All". The value is 0. +// - All - Filter that matches input with any ApplicationDefinitionKind value. The value is 65535. +// - ServiceFabricApplicationDescription - Filter that matches input with ApplicationDefinitionKind value +// ServiceFabricApplicationDescription. The value is 1. +// - Compose - Filter that matches input with ApplicationDefinitionKind value Compose. The value is 2. +// applicationTypeName - the application type name used to filter the applications to query for. This value +// should not contain the application type version. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationInfoList(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationInfoList", err.Error()) + } + + req, err := client.GetApplicationInfoListPreparer(ctx, applicationDefinitionKindFilter, applicationTypeName, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationInfoList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationInfoListPreparer prepares the GetApplicationInfoList request. +func (client BaseClient) GetApplicationInfoListPreparer(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if applicationDefinitionKindFilter != nil { + queryParameters["ApplicationDefinitionKindFilter"] = autorest.Encode("query", *applicationDefinitionKindFilter) + } else { + queryParameters["ApplicationDefinitionKindFilter"] = autorest.Encode("query", 0) + } + if len(applicationTypeName) > 0 { + queryParameters["ApplicationTypeName"] = autorest.Encode("query", applicationTypeName) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Applications"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationInfoListSender sends the GetApplicationInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationInfoListResponder handles the response to the GetApplicationInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationInfoListResponder(resp *http.Response) (result PagedApplicationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationLoadInfo returns the load information about the application that was created or in the process of +// being created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response +// includes the name, minimum nodes, maximum nodes, the number of nodes the application is occupying currently, and +// application load metric information about the application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationLoadInfo(ctx context.Context, applicationID string, timeout *int64) (result ApplicationLoadInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationLoadInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationLoadInfo", err.Error()) + } + + req, err := client.GetApplicationLoadInfoPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationLoadInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationLoadInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationLoadInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationLoadInfoPreparer prepares the GetApplicationLoadInfo request. +func (client BaseClient) GetApplicationLoadInfoPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationLoadInfoSender sends the GetApplicationLoadInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationLoadInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationLoadInfoResponder handles the response to the GetApplicationLoadInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationLoadInfoResponder(resp *http.Response) (result ApplicationLoadInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationManifest the response contains the application manifest XML as a string. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result ApplicationTypeManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationManifest", err.Error()) + } + + req, err := client.GetApplicationManifestPreparer(ctx, applicationTypeName, applicationTypeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationManifest", resp, "Failure responding to request") + } + + return +} + +// GetApplicationManifestPreparer prepares the GetApplicationManifest request. +func (client BaseClient) GetApplicationManifestPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetApplicationManifest", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationManifestSender sends the GetApplicationManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationManifestResponder handles the response to the GetApplicationManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationManifestResponder(resp *http.Response) (result ApplicationTypeManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationNameInfo gets the name of the application for the specified service. A 404 +// FABRIC_E_SERVICE_DOES_NOT_EXIST error is returned if a service with the provided service ID does not exist. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationNameInfo(ctx context.Context, serviceID string, timeout *int64) (result ApplicationNameInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationNameInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationNameInfo", err.Error()) + } + + req, err := client.GetApplicationNameInfoPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationNameInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationNameInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationNameInfo", resp, "Failure responding to request") + } + + return +} + +// GetApplicationNameInfoPreparer prepares the GetApplicationNameInfo request. +func (client BaseClient) GetApplicationNameInfoPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetApplicationName", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationNameInfoSender sends the GetApplicationNameInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationNameInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationNameInfoResponder handles the response to the GetApplicationNameInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationNameInfoResponder(resp *http.Response) (result ApplicationNameInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationsEventList the response is list of ApplicationEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetApplicationsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListApplicationEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationsEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationsEventList", err.Error()) + } + + req, err := client.GetApplicationsEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationsEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationsEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationsEventList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationsEventListPreparer prepares the GetApplicationsEventList request. +func (client BaseClient) GetApplicationsEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Applications/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationsEventListSender sends the GetApplicationsEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationsEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationsEventListResponder handles the response to the GetApplicationsEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationsEventListResponder(resp *http.Response) (result ListApplicationEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationTypeInfoList returns the information about the application types that are provisioned or in the +// process of being provisioned in the Service Fabric cluster. Each version of an application type is returned as one +// application type. The response includes the name, version, status, and other details about the application type. +// This is a paged query, meaning that if not all of the application types fit in a page, one page of results is +// returned as well as a continuation token, which can be used to get the next page. For example, if there are 10 +// application types but a page only fits the first three application types, or if max results is set to 3, then three +// is returned. To access the rest of the results, retrieve subsequent pages by using the returned continuation token +// in the next query. An empty continuation token is returned if there are no subsequent pages. +// Parameters: +// applicationTypeDefinitionKindFilter - used to filter on ApplicationTypeDefinitionKind which is the mechanism +// used to define a Service Fabric application type. +// - Default - Default value, which performs the same function as selecting "All". The value is 0. +// - All - Filter that matches input with any ApplicationTypeDefinitionKind value. The value is 65535. +// - ServiceFabricApplicationPackage - Filter that matches input with ApplicationTypeDefinitionKind value +// ServiceFabricApplicationPackage. The value is 1. +// - Compose - Filter that matches input with ApplicationTypeDefinitionKind value Compose. The value is 2. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationTypeInfoList(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationTypeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationTypeInfoList", err.Error()) + } + + req, err := client.GetApplicationTypeInfoListPreparer(ctx, applicationTypeDefinitionKindFilter, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetApplicationTypeInfoListPreparer prepares the GetApplicationTypeInfoList request. +func (client BaseClient) GetApplicationTypeInfoListPreparer(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if applicationTypeDefinitionKindFilter != nil { + queryParameters["ApplicationTypeDefinitionKindFilter"] = autorest.Encode("query", *applicationTypeDefinitionKindFilter) + } else { + queryParameters["ApplicationTypeDefinitionKindFilter"] = autorest.Encode("query", 0) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ApplicationTypes"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationTypeInfoListSender sends the GetApplicationTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationTypeInfoListResponder handles the response to the GetApplicationTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationTypeInfoListResponder(resp *http.Response) (result PagedApplicationTypeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationTypeInfoListByName returns the information about the application types that are provisioned or in the +// process of being provisioned in the Service Fabric cluster. These results are of application types whose name match +// exactly the one specified as the parameter, and which comply with the given query parameters. All versions of the +// application type matching the application type name are returned, with each version returned as one application +// type. The response includes the name, version, status, and other details about the application type. This is a paged +// query, meaning that if not all of the application types fit in a page, one page of results is returned as well as a +// continuation token, which can be used to get the next page. For example, if there are 10 application types but a +// page only fits the first three application types, or if max results is set to 3, then three is returned. To access +// the rest of the results, retrieve subsequent pages by using the returned continuation token in the next query. An +// empty continuation token is returned if there are no subsequent pages. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// excludeApplicationParameters - the flag that specifies whether application parameters will be excluded from +// the result. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationTypeInfoListByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result PagedApplicationTypeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationTypeInfoListByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationTypeInfoListByName", err.Error()) + } + + req, err := client.GetApplicationTypeInfoListByNamePreparer(ctx, applicationTypeName, applicationTypeVersion, excludeApplicationParameters, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationTypeInfoListByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationTypeInfoListByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationTypeInfoListByName", resp, "Failure responding to request") + } + + return +} + +// GetApplicationTypeInfoListByNamePreparer prepares the GetApplicationTypeInfoListByName request. +func (client BaseClient) GetApplicationTypeInfoListByNamePreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(applicationTypeVersion) > 0 { + queryParameters["ApplicationTypeVersion"] = autorest.Encode("query", applicationTypeVersion) + } + if excludeApplicationParameters != nil { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", *excludeApplicationParameters) + } else { + queryParameters["ExcludeApplicationParameters"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationTypeInfoListByNameSender sends the GetApplicationTypeInfoListByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationTypeInfoListByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationTypeInfoListByNameResponder handles the response to the GetApplicationTypeInfoListByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationTypeInfoListByNameResponder(resp *http.Response) (result PagedApplicationTypeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetApplicationUpgrade returns information about the state of the latest application upgrade along with details to +// aid debugging application health issues. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result ApplicationUpgradeProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetApplicationUpgrade") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetApplicationUpgrade", err.Error()) + } + + req, err := client.GetApplicationUpgradePreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.GetApplicationUpgradeSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.GetApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// GetApplicationUpgradePreparer prepares the GetApplicationUpgrade request. +func (client BaseClient) GetApplicationUpgradePreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetUpgradeProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetApplicationUpgradeSender sends the GetApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetApplicationUpgradeResponder handles the response to the GetApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) GetApplicationUpgradeResponder(resp *http.Response) (result ApplicationUpgradeProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupPolicyByName gets a particular backup policy identified by {backupPolicyName} +// Parameters: +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetBackupPolicyByName(ctx context.Context, backupPolicyName string, timeout *int64) (result BackupPolicyDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupPolicyByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupPolicyByName", err.Error()) + } + + req, err := client.GetBackupPolicyByNamePreparer(ctx, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupPolicyByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", resp, "Failure sending request") + return + } + + result, err = client.GetBackupPolicyByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyByName", resp, "Failure responding to request") + } + + return +} + +// GetBackupPolicyByNamePreparer prepares the GetBackupPolicyByName request. +func (client BaseClient) GetBackupPolicyByNamePreparer(ctx context.Context, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupPolicyByNameSender sends the GetBackupPolicyByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupPolicyByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupPolicyByNameResponder handles the response to the GetBackupPolicyByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupPolicyByNameResponder(resp *http.Response) (result BackupPolicyDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupPolicyList get a list of all the backup policies configured. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetBackupPolicyList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupPolicyDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupPolicyList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupPolicyList", err.Error()) + } + + req, err := client.GetBackupPolicyListPreparer(ctx, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupPolicyListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", resp, "Failure sending request") + return + } + + result, err = client.GetBackupPolicyListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupPolicyList", resp, "Failure responding to request") + } + + return +} + +// GetBackupPolicyListPreparer prepares the GetBackupPolicyList request. +func (client BaseClient) GetBackupPolicyListPreparer(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/BackupPolicies"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupPolicyListSender sends the GetBackupPolicyList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupPolicyListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupPolicyListResponder handles the response to the GetBackupPolicyList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupPolicyListResponder(resp *http.Response) (result PagedBackupPolicyDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetBackupsFromBackupLocation gets the list of backups available for the specified backed up entity (Application, +// Service or Partition) at the specified backup location (FileShare or Azure Blob Storage). +// Parameters: +// getBackupByStorageQueryDescription - describes the filters and backup storage details to be used for +// enumerating backups. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetBackupsFromBackupLocation(ctx context.Context, getBackupByStorageQueryDescription GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetBackupsFromBackupLocation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: getBackupByStorageQueryDescription, + Constraints: []validation.Constraint{{Target: "getBackupByStorageQueryDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "getBackupByStorageQueryDescription.BackupEntity", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetBackupsFromBackupLocation", err.Error()) + } + + req, err := client.GetBackupsFromBackupLocationPreparer(ctx, getBackupByStorageQueryDescription, timeout, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", nil, "Failure preparing request") + return + } + + resp, err := client.GetBackupsFromBackupLocationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", resp, "Failure sending request") + return + } + + result, err = client.GetBackupsFromBackupLocationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetBackupsFromBackupLocation", resp, "Failure responding to request") + } + + return +} + +// GetBackupsFromBackupLocationPreparer prepares the GetBackupsFromBackupLocation request. +func (client BaseClient) GetBackupsFromBackupLocationPreparer(ctx context.Context, getBackupByStorageQueryDescription GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/BackupRestore/$/GetBackups"), + autorest.WithJSON(getBackupByStorageQueryDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetBackupsFromBackupLocationSender sends the GetBackupsFromBackupLocation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetBackupsFromBackupLocationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetBackupsFromBackupLocationResponder handles the response to the GetBackupsFromBackupLocation request. The method always +// closes the http.Response Body. +func (client BaseClient) GetBackupsFromBackupLocationResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaos get the status of Chaos indicating whether or not Chaos is running, the Chaos parameters used for running +// Chaos and the status of the Chaos Schedule. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaos(ctx context.Context, timeout *int64) (result Chaos, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaos") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaos", err.Error()) + } + + req, err := client.GetChaosPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", resp, "Failure sending request") + return + } + + result, err = client.GetChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaos", resp, "Failure responding to request") + } + + return +} + +// GetChaosPreparer prepares the GetChaos request. +func (client BaseClient) GetChaosPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosSender sends the GetChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosResponder handles the response to the GetChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosResponder(resp *http.Response) (result Chaos, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaosEvents to get the next segment of the Chaos events, you can specify the ContinuationToken. To get the start +// of a new segment of Chaos events, you can specify the time range +// through StartTimeUtc and EndTimeUtc. You cannot specify both the ContinuationToken and the time range in the same +// call. +// When there are more than 100 Chaos events, the Chaos events are returned in multiple segments where a segment +// contains no more than 100 Chaos events and to get the next segment you make a call to this API with the continuation +// token. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// startTimeUtc - the Windows file time representing the start time of the time range for which a Chaos report +// is to be generated. Consult [DateTime.ToFileTimeUtc +// Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details. +// endTimeUtc - the Windows file time representing the end time of the time range for which a Chaos report is +// to be generated. Consult [DateTime.ToFileTimeUtc +// Method](https://msdn.microsoft.com/library/system.datetime.tofiletimeutc(v=vs.110).aspx) for details. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaosEvents(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (result ChaosEventsSegment, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaosEvents") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaosEvents", err.Error()) + } + + req, err := client.GetChaosEventsPreparer(ctx, continuationToken, startTimeUtc, endTimeUtc, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosEventsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", resp, "Failure sending request") + return + } + + result, err = client.GetChaosEventsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosEvents", resp, "Failure responding to request") + } + + return +} + +// GetChaosEventsPreparer prepares the GetChaosEvents request. +func (client BaseClient) GetChaosEventsPreparer(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if len(startTimeUtc) > 0 { + queryParameters["StartTimeUtc"] = autorest.Encode("query", startTimeUtc) + } + if len(endTimeUtc) > 0 { + queryParameters["EndTimeUtc"] = autorest.Encode("query", endTimeUtc) + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosEventsSender sends the GetChaosEvents request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosEventsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosEventsResponder handles the response to the GetChaosEvents request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosEventsResponder(resp *http.Response) (result ChaosEventsSegment, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetChaosSchedule gets the version of the Chaos Schedule in use and the Chaos Schedule that defines when and how to +// run Chaos. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetChaosSchedule(ctx context.Context, timeout *int64) (result ChaosScheduleDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetChaosSchedule") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetChaosSchedule", err.Error()) + } + + req, err := client.GetChaosSchedulePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", nil, "Failure preparing request") + return + } + + resp, err := client.GetChaosScheduleSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", resp, "Failure sending request") + return + } + + result, err = client.GetChaosScheduleResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetChaosSchedule", resp, "Failure responding to request") + } + + return +} + +// GetChaosSchedulePreparer prepares the GetChaosSchedule request. +func (client BaseClient) GetChaosSchedulePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Schedule"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetChaosScheduleSender sends the GetChaosSchedule request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetChaosScheduleSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetChaosScheduleResponder handles the response to the GetChaosSchedule request. The method always +// closes the http.Response Body. +func (client BaseClient) GetChaosScheduleResponder(resp *http.Response) (result ChaosScheduleDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterConfiguration the cluster configuration contains properties of the cluster that include different node +// types on the cluster, +// security configurations, fault, and upgrade domain topologies, etc. +// Parameters: +// configurationAPIVersion - the API version of the Standalone cluster json configuration. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterConfiguration(ctx context.Context, configurationAPIVersion string, timeout *int64) (result ClusterConfiguration, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterConfiguration") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterConfiguration", err.Error()) + } + + req, err := client.GetClusterConfigurationPreparer(ctx, configurationAPIVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterConfigurationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", resp, "Failure sending request") + return + } + + result, err = client.GetClusterConfigurationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfiguration", resp, "Failure responding to request") + } + + return +} + +// GetClusterConfigurationPreparer prepares the GetClusterConfiguration request. +func (client BaseClient) GetClusterConfigurationPreparer(ctx context.Context, configurationAPIVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ConfigurationApiVersion": autorest.Encode("query", configurationAPIVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterConfiguration"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterConfigurationSender sends the GetClusterConfiguration request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterConfigurationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterConfigurationResponder handles the response to the GetClusterConfiguration request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterConfigurationResponder(resp *http.Response) (result ClusterConfiguration, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterConfigurationUpgradeStatus get the cluster configuration upgrade status details of a Service Fabric +// standalone cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterConfigurationUpgradeStatus(ctx context.Context, timeout *int64) (result ClusterConfigurationUpgradeStatusInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterConfigurationUpgradeStatus") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", err.Error()) + } + + req, err := client.GetClusterConfigurationUpgradeStatusPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterConfigurationUpgradeStatusSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", resp, "Failure sending request") + return + } + + result, err = client.GetClusterConfigurationUpgradeStatusResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterConfigurationUpgradeStatus", resp, "Failure responding to request") + } + + return +} + +// GetClusterConfigurationUpgradeStatusPreparer prepares the GetClusterConfigurationUpgradeStatus request. +func (client BaseClient) GetClusterConfigurationUpgradeStatusPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterConfigurationUpgradeStatus"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterConfigurationUpgradeStatusSender sends the GetClusterConfigurationUpgradeStatus request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterConfigurationUpgradeStatusSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterConfigurationUpgradeStatusResponder handles the response to the GetClusterConfigurationUpgradeStatus request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterConfigurationUpgradeStatusResponder(resp *http.Response) (result ClusterConfigurationUpgradeStatusInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterEventList the response is list of ClusterEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetClusterEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListClusterEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterEventList", err.Error()) + } + + req, err := client.GetClusterEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", resp, "Failure sending request") + return + } + + result, err = client.GetClusterEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterEventList", resp, "Failure responding to request") + } + + return +} + +// GetClusterEventListPreparer prepares the GetClusterEventList request. +func (client BaseClient) GetClusterEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Cluster/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterEventListSender sends the GetClusterEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterEventListResponder handles the response to the GetClusterEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterEventListResponder(resp *http.Response) (result ListClusterEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealth use EventsHealthStateFilter to filter the collection of health events reported on the cluster based +// on the health state. +// Similarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and +// applications returned based on their aggregated health state. +// Parameters: +// nodesHealthStateFilter - allows filtering of the node health state objects returned in the result of cluster +// health query +// based on their health state. The possible values for this parameter include integer value of one of the +// following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the +// aggregated health state. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of nodes with HealthState value of OK (2) and +// Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationsHealthStateFilter - allows filtering of the application health state objects returned in the +// result of cluster health +// query based on their health state. +// The possible values for this parameter include integer value obtained from members or bitwise operations +// on members of HealthStateFilter enumeration. Only applications that match the filter are returned. +// All applications are used to evaluate the aggregated health state. If not specified, all entries are +// returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of applications with HealthState value of OK (2) +// and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// includeSystemApplicationHealthStatistics - indicates whether the health statistics should include the +// fabric:/System application health statistics. False by default. +// If IncludeSystemApplicationHealthStatistics is set to true, the health statistics include the entities that +// belong to the fabric:/System application. +// Otherwise, the query result includes health statistics only for user applications. +// The health statistics must be included in the query result for this parameter to be applied. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealth(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (result ClusterHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealth", err.Error()) + } + + req, err := client.GetClusterHealthPreparer(ctx, nodesHealthStateFilter, applicationsHealthStateFilter, eventsHealthStateFilter, excludeHealthStatistics, includeSystemApplicationHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealth", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthPreparer prepares the GetClusterHealth request. +func (client BaseClient) GetClusterHealthPreparer(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if nodesHealthStateFilter != nil { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", *nodesHealthStateFilter) + } else { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", 0) + } + if applicationsHealthStateFilter != nil { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", *applicationsHealthStateFilter) + } else { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if includeSystemApplicationHealthStatistics != nil { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", *includeSystemApplicationHealthStatistics) + } else { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealth"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthSender sends the GetClusterHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthResponder handles the response to the GetClusterHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthResponder(resp *http.Response) (result ClusterHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthChunk gets the health of a Service Fabric cluster using health chunks. Includes the aggregated +// health state of the cluster, but none of the cluster entities. +// To expand the cluster health and get the health state of all or some of the entities, use the POST URI and specify +// the cluster health chunk query description. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthChunk(ctx context.Context, timeout *int64) (result ClusterHealthChunk, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthChunk") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthChunk", err.Error()) + } + + req, err := client.GetClusterHealthChunkPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthChunkSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthChunkResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunk", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthChunkPreparer prepares the GetClusterHealthChunk request. +func (client BaseClient) GetClusterHealthChunkPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealthChunk"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthChunkSender sends the GetClusterHealthChunk request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthChunkSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthChunkResponder handles the response to the GetClusterHealthChunk request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthChunkResponder(resp *http.Response) (result ClusterHealthChunk, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFilters gets the health of a Service Fabric cluster using health chunks. +// The health evaluation is done based on the input cluster health chunk query description. +// The query description allows users to specify health policies for evaluating the cluster and its children. +// Users can specify very flexible filters to select which cluster entities to return. The selection can be done based +// on the entities health state and based on the hierarchy. +// The query can return multi-level children of the entities based on the specified filters. For example, it can return +// one application with a specified name, and for this application, return +// only services that are in Error or Warning, and all partitions and replicas for one of these services. +// Parameters: +// clusterHealthChunkQueryDescription - describes the cluster and application health policies used to evaluate +// the cluster health and the filters to select which cluster entities to be returned. +// If the cluster health policy is present, it is used to evaluate the cluster events and the cluster nodes. If +// not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the +// default cluster health policy. +// By default, each application is evaluated using its specific application health policy, defined in the +// application manifest, or the default health policy, if no policy is defined in manifest. +// If the application health policy map is specified, and it has an entry for an application, the specified +// application health policy +// is used to evaluate the application health. +// Users can specify very flexible filters to select which cluster entities to include in response. The +// selection can be done based on the entities health state and based on the hierarchy. +// The query can return multi-level children of the entities based on the specified filters. For example, it +// can return one application with a specified name, and for this application, return +// only services that are in Error or Warning, and all partitions and replicas for one of these services. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFilters(ctx context.Context, clusterHealthChunkQueryDescription *ClusterHealthChunkQueryDescription, timeout *int64) (result ClusterHealthChunk, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthChunkUsingPolicyAndAdvancedFilters") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", err.Error()) + } + + req, err := client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer(ctx, clusterHealthChunkQueryDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthChunkUsingPolicyAndAdvancedFilters", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer prepares the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersPreparer(ctx context.Context, clusterHealthChunkQueryDescription *ClusterHealthChunkQueryDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealthChunk"), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthChunkQueryDescription != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthChunkQueryDescription)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender sends the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder handles the response to the GetClusterHealthChunkUsingPolicyAndAdvancedFilters request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthChunkUsingPolicyAndAdvancedFiltersResponder(resp *http.Response) (result ClusterHealthChunk, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterHealthUsingPolicy use EventsHealthStateFilter to filter the collection of health events reported on the +// cluster based on the health state. +// Similarly, use NodesHealthStateFilter and ApplicationsHealthStateFilter to filter the collection of nodes and +// applications returned based on their aggregated health state. +// Use ClusterHealthPolicies to override the health policies used to evaluate the health. +// Parameters: +// nodesHealthStateFilter - allows filtering of the node health state objects returned in the result of cluster +// health query +// based on their health state. The possible values for this parameter include integer value of one of the +// following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the +// aggregated health state. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of nodes with HealthState value of OK (2) and +// Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationsHealthStateFilter - allows filtering of the application health state objects returned in the +// result of cluster health +// query based on their health state. +// The possible values for this parameter include integer value obtained from members or bitwise operations +// on members of HealthStateFilter enumeration. Only applications that match the filter are returned. +// All applications are used to evaluate the aggregated health state. If not specified, all entries are +// returned. +// The state values are flag-based enumeration, so the value could be a combination of these values obtained +// using bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of applications with HealthState value of OK (2) +// and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// includeSystemApplicationHealthStatistics - indicates whether the health statistics should include the +// fabric:/System application health statistics. False by default. +// If IncludeSystemApplicationHealthStatistics is set to true, the health statistics include the entities that +// belong to the fabric:/System application. +// Otherwise, the query result includes health statistics only for user applications. +// The health statistics must be included in the query result for this parameter to be applied. +// clusterHealthPolicies - describes the health policies used to evaluate the cluster health. +// If not present, the health evaluation uses the cluster health policy defined in the cluster manifest or the +// default cluster health policy. +// By default, each application is evaluated using its specific application health policy, defined in the +// application manifest, or the default health policy, if no policy is defined in manifest. +// If the application health policy map is specified, and it has an entry for an application, the specified +// application health policy +// is used to evaluate the application health. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterHealthUsingPolicy(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *ClusterHealthPolicies, timeout *int64) (result ClusterHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterHealthUsingPolicy", err.Error()) + } + + req, err := client.GetClusterHealthUsingPolicyPreparer(ctx, nodesHealthStateFilter, applicationsHealthStateFilter, eventsHealthStateFilter, excludeHealthStatistics, includeSystemApplicationHealthStatistics, clusterHealthPolicies, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetClusterHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetClusterHealthUsingPolicyPreparer prepares the GetClusterHealthUsingPolicy request. +func (client BaseClient) GetClusterHealthUsingPolicyPreparer(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *ClusterHealthPolicies, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if nodesHealthStateFilter != nil { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", *nodesHealthStateFilter) + } else { + queryParameters["NodesHealthStateFilter"] = autorest.Encode("query", 0) + } + if applicationsHealthStateFilter != nil { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", *applicationsHealthStateFilter) + } else { + queryParameters["ApplicationsHealthStateFilter"] = autorest.Encode("query", 0) + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if includeSystemApplicationHealthStatistics != nil { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", *includeSystemApplicationHealthStatistics) + } else { + queryParameters["IncludeSystemApplicationHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterHealth"), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthPolicies != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthPolicies)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterHealthUsingPolicySender sends the GetClusterHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterHealthUsingPolicyResponder handles the response to the GetClusterHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterHealthUsingPolicyResponder(resp *http.Response) (result ClusterHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterManifest get the Service Fabric cluster manifest. The cluster manifest contains properties of the cluster +// that include different node types on the cluster, +// security configurations, fault, and upgrade domain topologies, etc. +// +// These properties are specified as part of the ClusterConfig.JSON file while deploying a stand-alone cluster. +// However, most of the information in the cluster manifest +// is generated internally by service fabric during cluster deployment in other deployment scenarios (e.g. when using +// Azure portal). +// +// The contents of the cluster manifest are for informational purposes only and users are not expected to take a +// dependency on the format of the file contents or its interpretation. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterManifest(ctx context.Context, timeout *int64) (result ClusterManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterManifest", err.Error()) + } + + req, err := client.GetClusterManifestPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", resp, "Failure sending request") + return + } + + result, err = client.GetClusterManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterManifest", resp, "Failure responding to request") + } + + return +} + +// GetClusterManifestPreparer prepares the GetClusterManifest request. +func (client BaseClient) GetClusterManifestPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterManifest"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterManifestSender sends the GetClusterManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterManifestResponder handles the response to the GetClusterManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterManifestResponder(resp *http.Response) (result ClusterManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterUpgradeProgress gets the current progress of the ongoing cluster upgrade. If no upgrade is currently in +// progress, get the last state of the previous cluster upgrade. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterUpgradeProgress(ctx context.Context, timeout *int64) (result ClusterUpgradeProgressObject, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterUpgradeProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterUpgradeProgress", err.Error()) + } + + req, err := client.GetClusterUpgradeProgressPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterUpgradeProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", resp, "Failure sending request") + return + } + + result, err = client.GetClusterUpgradeProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterUpgradeProgress", resp, "Failure responding to request") + } + + return +} + +// GetClusterUpgradeProgressPreparer prepares the GetClusterUpgradeProgress request. +func (client BaseClient) GetClusterUpgradeProgressPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetUpgradeProgress"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterUpgradeProgressSender sends the GetClusterUpgradeProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterUpgradeProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterUpgradeProgressResponder handles the response to the GetClusterUpgradeProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterUpgradeProgressResponder(resp *http.Response) (result ClusterUpgradeProgressObject, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetClusterVersion if a cluster upgrade is happening, then this API will return the lowest (older) version of the +// current and target cluster runtime versions. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetClusterVersion(ctx context.Context, timeout *int64) (result ClusterVersion, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetClusterVersion") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetClusterVersion", err.Error()) + } + + req, err := client.GetClusterVersionPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterVersion", nil, "Failure preparing request") + return + } + + resp, err := client.GetClusterVersionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterVersion", resp, "Failure sending request") + return + } + + result, err = client.GetClusterVersionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetClusterVersion", resp, "Failure responding to request") + } + + return +} + +// GetClusterVersionPreparer prepares the GetClusterVersion request. +func (client BaseClient) GetClusterVersionPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetClusterVersion"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetClusterVersionSender sends the GetClusterVersion request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetClusterVersionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetClusterVersionResponder handles the response to the GetClusterVersion request. The method always +// closes the http.Response Body. +func (client BaseClient) GetClusterVersionResponder(resp *http.Response) (result ClusterVersion, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentStatus returns the status of the compose deployment that was created or in the process of being +// created in the Service Fabric cluster and whose name matches the one specified as the parameter. The response +// includes the name, status, and other details about the deployment. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentStatus(ctx context.Context, deploymentName string, timeout *int64) (result ComposeDeploymentStatusInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentStatus") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentStatus", err.Error()) + } + + req, err := client.GetComposeDeploymentStatusPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentStatusSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentStatusResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatus", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentStatusPreparer prepares the GetComposeDeploymentStatus request. +func (client BaseClient) GetComposeDeploymentStatusPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentStatusSender sends the GetComposeDeploymentStatus request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentStatusSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentStatusResponder handles the response to the GetComposeDeploymentStatus request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentStatusResponder(resp *http.Response) (result ComposeDeploymentStatusInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentStatusList gets the status about the compose deployments that were created or in the process of +// being created in the Service Fabric cluster. The response includes the name, status, and other details about the +// compose deployments. If the list of deployments do not fit in a page, one page of results is returned as well as a +// continuation token, which can be used to get the next page. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentStatusList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result PagedComposeDeploymentStatusInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentStatusList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentStatusList", err.Error()) + } + + req, err := client.GetComposeDeploymentStatusListPreparer(ctx, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentStatusListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentStatusListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentStatusList", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentStatusListPreparer prepares the GetComposeDeploymentStatusList request. +func (client BaseClient) GetComposeDeploymentStatusListPreparer(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ComposeDeployments"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentStatusListSender sends the GetComposeDeploymentStatusList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentStatusListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentStatusListResponder handles the response to the GetComposeDeploymentStatusList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentStatusListResponder(resp *http.Response) (result PagedComposeDeploymentStatusInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetComposeDeploymentUpgradeProgress returns the information about the state of the compose deployment upgrade along +// with details to aid debugging application health issues. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetComposeDeploymentUpgradeProgress(ctx context.Context, deploymentName string, timeout *int64) (result ComposeDeploymentUpgradeProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetComposeDeploymentUpgradeProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", err.Error()) + } + + req, err := client.GetComposeDeploymentUpgradeProgressPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetComposeDeploymentUpgradeProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", resp, "Failure sending request") + return + } + + result, err = client.GetComposeDeploymentUpgradeProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetComposeDeploymentUpgradeProgress", resp, "Failure responding to request") + } + + return +} + +// GetComposeDeploymentUpgradeProgressPreparer prepares the GetComposeDeploymentUpgradeProgress request. +func (client BaseClient) GetComposeDeploymentUpgradeProgressPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/GetUpgradeProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetComposeDeploymentUpgradeProgressSender sends the GetComposeDeploymentUpgradeProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetComposeDeploymentUpgradeProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetComposeDeploymentUpgradeProgressResponder handles the response to the GetComposeDeploymentUpgradeProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetComposeDeploymentUpgradeProgressResponder(resp *http.Response) (result ComposeDeploymentUpgradeProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetContainerLogsDeployedOnNode gets the container logs for container deployed on a Service Fabric node for the given +// code package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// tail - number of lines to show from the end of the logs. Default is 100. 'all' to show the complete logs. +// previous - specifies whether to get container logs from exited/dead containers of the code package instance. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetContainerLogsDeployedOnNode(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (result ContainerLogs, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetContainerLogsDeployedOnNode") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", err.Error()) + } + + req, err := client.GetContainerLogsDeployedOnNodePreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, tail, previous, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", nil, "Failure preparing request") + return + } + + resp, err := client.GetContainerLogsDeployedOnNodeSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", resp, "Failure sending request") + return + } + + result, err = client.GetContainerLogsDeployedOnNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainerLogsDeployedOnNode", resp, "Failure responding to request") + } + + return +} + +// GetContainerLogsDeployedOnNodePreparer prepares the GetContainerLogsDeployedOnNode request. +func (client BaseClient) GetContainerLogsDeployedOnNodePreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "CodePackageName": autorest.Encode("query", codePackageName), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if len(tail) > 0 { + queryParameters["Tail"] = autorest.Encode("query", tail) + } + if previous != nil { + queryParameters["Previous"] = autorest.Encode("query", *previous) + } else { + queryParameters["Previous"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerLogs", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetContainerLogsDeployedOnNodeSender sends the GetContainerLogsDeployedOnNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetContainerLogsDeployedOnNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetContainerLogsDeployedOnNodeResponder handles the response to the GetContainerLogsDeployedOnNode request. The method always +// closes the http.Response Body. +func (client BaseClient) GetContainerLogsDeployedOnNodeResponder(resp *http.Response) (result ContainerLogs, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetContainersEventList the response is list of ContainerInstanceEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetContainersEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListContainerInstanceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetContainersEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetContainersEventList", err.Error()) + } + + req, err := client.GetContainersEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetContainersEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", resp, "Failure sending request") + return + } + + result, err = client.GetContainersEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetContainersEventList", resp, "Failure responding to request") + } + + return +} + +// GetContainersEventListPreparer prepares the GetContainersEventList request. +func (client BaseClient) GetContainersEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.2-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Containers/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetContainersEventListSender sends the GetContainersEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetContainersEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetContainersEventListResponder handles the response to the GetContainersEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetContainersEventListResponder(resp *http.Response) (result ListContainerInstanceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetCorrelatedEventList the response is list of FabricEvents. +// Parameters: +// eventInstanceID - the EventInstanceId. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetCorrelatedEventList(ctx context.Context, eventInstanceID string, timeout *int64) (result ListFabricEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetCorrelatedEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetCorrelatedEventList", err.Error()) + } + + req, err := client.GetCorrelatedEventListPreparer(ctx, eventInstanceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetCorrelatedEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", resp, "Failure sending request") + return + } + + result, err = client.GetCorrelatedEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetCorrelatedEventList", resp, "Failure responding to request") + } + + return +} + +// GetCorrelatedEventListPreparer prepares the GetCorrelatedEventList request. +func (client BaseClient) GetCorrelatedEventListPreparer(ctx context.Context, eventInstanceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "eventInstanceId": autorest.Encode("path", eventInstanceID), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/CorrelatedEvents/{eventInstanceId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetCorrelatedEventListSender sends the GetCorrelatedEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetCorrelatedEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetCorrelatedEventListResponder handles the response to the GetCorrelatedEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetCorrelatedEventListResponder(resp *http.Response) (result ListFabricEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDataLossProgress gets the progress of a data loss operation started with StartDataLoss, using the OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDataLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionDataLossProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDataLossProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDataLossProgress", err.Error()) + } + + req, err := client.GetDataLossProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetDataLossProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", resp, "Failure sending request") + return + } + + result, err = client.GetDataLossProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDataLossProgress", resp, "Failure responding to request") + } + + return +} + +// GetDataLossProgressPreparer prepares the GetDataLossProgress request. +func (client BaseClient) GetDataLossProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetDataLossProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDataLossProgressSender sends the GetDataLossProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDataLossProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDataLossProgressResponder handles the response to the GetDataLossProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDataLossProgressResponder(resp *http.Response) (result PartitionDataLossProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationHealth gets the information about health of an application deployed on a Service Fabric node. +// Use EventsHealthStateFilter to optionally filter for the collection of HealthEvent objects reported on the deployed +// application based on health state. Use DeployedServicePackagesHealthStateFilter to optionally filter for +// DeployedServicePackageHealth children based on health state. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedServicePackagesHealthStateFilter - allows filtering of the deployed service package health state +// objects returned in the result of deployed application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only deployed service packages that match the filter are returned. All deployed service packages are used to +// evaluate the aggregated health state of the deployed application. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value can be a combination of these values, obtained +// using the bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of service packages with HealthState value of OK +// (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result DeployedApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationHealth", err.Error()) + } + + req, err := client.GetDeployedApplicationHealthPreparer(ctx, nodeName, applicationID, eventsHealthStateFilter, deployedServicePackagesHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationHealthPreparer prepares the GetDeployedApplicationHealth request. +func (client BaseClient) GetDeployedApplicationHealthPreparer(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedServicePackagesHealthStateFilter != nil { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", *deployedServicePackagesHealthStateFilter) + } else { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationHealthSender sends the GetDeployedApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationHealthResponder handles the response to the GetDeployedApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationHealthResponder(resp *http.Response) (result DeployedApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationHealthUsingPolicy gets the information about health of an application deployed on a Service +// Fabric node using the specified policy. Use EventsHealthStateFilter to optionally filter for the collection of +// HealthEvent objects reported on the deployed application based on health state. Use +// DeployedServicePackagesHealthStateFilter to optionally filter for DeployedServicePackageHealth children based on +// health state. Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. +// This API only uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored +// while evaluating the health of the deployed application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// deployedServicePackagesHealthStateFilter - allows filtering of the deployed service package health state +// objects returned in the result of deployed application health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only deployed service packages that match the filter are returned. All deployed service packages are used to +// evaluate the aggregated health state of the deployed application. +// If not specified, all entries are returned. +// The state values are flag-based enumeration, so the value can be a combination of these values, obtained +// using the bitwise 'OR' operator. +// For example, if the provided value is 6 then health state of service packages with HealthState value of OK +// (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result DeployedApplicationHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", err.Error()) + } + + req, err := client.GetDeployedApplicationHealthUsingPolicyPreparer(ctx, nodeName, applicationID, eventsHealthStateFilter, deployedServicePackagesHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationHealthUsingPolicyPreparer prepares the GetDeployedApplicationHealthUsingPolicy request. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicyPreparer(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if deployedServicePackagesHealthStateFilter != nil { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", *deployedServicePackagesHealthStateFilter) + } else { + queryParameters["DeployedServicePackagesHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationHealthUsingPolicySender sends the GetDeployedApplicationHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationHealthUsingPolicyResponder handles the response to the GetDeployedApplicationHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationHealthUsingPolicyResponder(resp *http.Response) (result DeployedApplicationHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationInfo this query returns system application information if the application ID provided is for +// system application. Results encompass deployed applications in active, activating, and downloading states. This +// query requires that the node name corresponds to a node on the cluster. The query fails if the provided node name +// does not point to any active Service Fabric nodes on the cluster. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// includeHealthState - include the health state of an entity. +// If this parameter is false or not specified, then the health state returned is "Unknown". +// When set to true, the query goes in parallel to the node and the health system service before the results +// are merged. +// As a result, the query is more expensive and may take a longer time. +func (client BaseClient) GetDeployedApplicationInfo(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (result DeployedApplicationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationInfo", err.Error()) + } + + req, err := client.GetDeployedApplicationInfoPreparer(ctx, nodeName, applicationID, timeout, includeHealthState) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfo", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationInfoPreparer prepares the GetDeployedApplicationInfo request. +func (client BaseClient) GetDeployedApplicationInfoPreparer(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if includeHealthState != nil { + queryParameters["IncludeHealthState"] = autorest.Encode("query", *includeHealthState) + } else { + queryParameters["IncludeHealthState"] = autorest.Encode("query", false) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationInfoSender sends the GetDeployedApplicationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationInfoResponder handles the response to the GetDeployedApplicationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationInfoResponder(resp *http.Response) (result DeployedApplicationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedApplicationInfoList gets the list of applications deployed on a Service Fabric node. The results do not +// include information about deployed system applications unless explicitly queried for by ID. Results encompass +// deployed applications in active, activating, and downloading states. This query requires that the node name +// corresponds to a node on the cluster. The query fails if the provided node name does not point to any active Service +// Fabric nodes on the cluster. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// includeHealthState - include the health state of an entity. +// If this parameter is false or not specified, then the health state returned is "Unknown". +// When set to true, the query goes in parallel to the node and the health system service before the results +// are merged. +// As a result, the query is more expensive and may take a longer time. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetDeployedApplicationInfoList(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (result PagedDeployedApplicationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedApplicationInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedApplicationInfoList", err.Error()) + } + + req, err := client.GetDeployedApplicationInfoListPreparer(ctx, nodeName, timeout, includeHealthState, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedApplicationInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedApplicationInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedApplicationInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedApplicationInfoListPreparer prepares the GetDeployedApplicationInfoList request. +func (client BaseClient) GetDeployedApplicationInfoListPreparer(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.1" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if includeHealthState != nil { + queryParameters["IncludeHealthState"] = autorest.Encode("query", *includeHealthState) + } else { + queryParameters["IncludeHealthState"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedApplicationInfoListSender sends the GetDeployedApplicationInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedApplicationInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedApplicationInfoListResponder handles the response to the GetDeployedApplicationInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedApplicationInfoListResponder(resp *http.Response) (result PagedDeployedApplicationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedCodePackageInfoList gets the list of code packages deployed on a Service Fabric node for the given +// application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedCodePackageInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (result ListDeployedCodePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedCodePackageInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedCodePackageInfoList", err.Error()) + } + + req, err := client.GetDeployedCodePackageInfoListPreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedCodePackageInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedCodePackageInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedCodePackageInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedCodePackageInfoListPreparer prepares the GetDeployedCodePackageInfoList request. +func (client BaseClient) GetDeployedCodePackageInfoListPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if len(codePackageName) > 0 { + queryParameters["CodePackageName"] = autorest.Encode("query", codePackageName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedCodePackageInfoListSender sends the GetDeployedCodePackageInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedCodePackageInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedCodePackageInfoListResponder handles the response to the GetDeployedCodePackageInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedCodePackageInfoListResponder(resp *http.Response) (result ListDeployedCodePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageHealth gets the information about health of a service package for a specific application +// deployed on a Service Fabric node. Use EventsHealthStateFilter to optionally filter for the collection of +// HealthEvent objects reported on the deployed service package based on health state. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (result DeployedServicePackageHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageHealth", err.Error()) + } + + req, err := client.GetDeployedServicePackageHealthPreparer(ctx, nodeName, applicationID, servicePackageName, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealth", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageHealthPreparer prepares the GetDeployedServicePackageHealth request. +func (client BaseClient) GetDeployedServicePackageHealthPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageHealthSender sends the GetDeployedServicePackageHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageHealthResponder handles the response to the GetDeployedServicePackageHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageHealthResponder(resp *http.Response) (result DeployedServicePackageHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageHealthUsingPolicy gets the information about health of a service package for a specific +// application deployed on a Service Fabric node. using the specified policy. Use EventsHealthStateFilter to optionally +// filter for the collection of HealthEvent objects reported on the deployed service package based on health state. Use +// ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only uses +// 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while evaluating +// the health of the deployed service package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result DeployedServicePackageHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", err.Error()) + } + + req, err := client.GetDeployedServicePackageHealthUsingPolicyPreparer(ctx, nodeName, applicationID, servicePackageName, eventsHealthStateFilter, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageHealthUsingPolicyPreparer prepares the GetDeployedServicePackageHealthUsingPolicy request. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicyPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageHealthUsingPolicySender sends the GetDeployedServicePackageHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageHealthUsingPolicyResponder handles the response to the GetDeployedServicePackageHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageHealthUsingPolicyResponder(resp *http.Response) (result DeployedServicePackageHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageInfoList returns the information about the service packages deployed on a Service Fabric +// node for the given application. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageInfoList(ctx context.Context, nodeName string, applicationID string, timeout *int64) (result ListDeployedServicePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageInfoList", err.Error()) + } + + req, err := client.GetDeployedServicePackageInfoListPreparer(ctx, nodeName, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageInfoListPreparer prepares the GetDeployedServicePackageInfoList request. +func (client BaseClient) GetDeployedServicePackageInfoListPreparer(ctx context.Context, nodeName string, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageInfoListSender sends the GetDeployedServicePackageInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageInfoListResponder handles the response to the GetDeployedServicePackageInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageInfoListResponder(resp *http.Response) (result ListDeployedServicePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServicePackageInfoListByName returns the information about the service packages deployed on a Service +// Fabric node for the given application. These results are of service packages whose name match exactly the service +// package name specified as the parameter. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServicePackageInfoListByName(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (result ListDeployedServicePackageInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServicePackageInfoListByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", err.Error()) + } + + req, err := client.GetDeployedServicePackageInfoListByNamePreparer(ctx, nodeName, applicationID, servicePackageName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServicePackageInfoListByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServicePackageInfoListByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServicePackageInfoListByName", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServicePackageInfoListByNamePreparer prepares the GetDeployedServicePackageInfoListByName request. +func (client BaseClient) GetDeployedServicePackageInfoListByNamePreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServicePackageInfoListByNameSender sends the GetDeployedServicePackageInfoListByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServicePackageInfoListByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServicePackageInfoListByNameResponder handles the response to the GetDeployedServicePackageInfoListByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServicePackageInfoListByNameResponder(resp *http.Response) (result ListDeployedServicePackageInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaDetailInfo gets the details of the replica deployed on a Service Fabric node. The +// information includes service kind, service name, current service operation, current service operation start date +// time, partition ID, replica/instance ID, reported load, and other information. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaDetailInfo(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result DeployedServiceReplicaDetailInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaDetailInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaDetailInfoPreparer(ctx, nodeName, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaDetailInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaDetailInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfo", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaDetailInfoPreparer prepares the GetDeployedServiceReplicaDetailInfo request. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetDetail", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaDetailInfoSender sends the GetDeployedServiceReplicaDetailInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaDetailInfoResponder handles the response to the GetDeployedServiceReplicaDetailInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoResponder(resp *http.Response) (result DeployedServiceReplicaDetailInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaDetailInfoByPartitionID gets the details of the replica deployed on a Service Fabric node. +// The information includes service kind, service name, current service operation, current service operation start date +// time, partition ID, replica/instance ID, reported load, and other information. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionID(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (result DeployedServiceReplicaDetailInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaDetailInfoByPartitionID") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer(ctx, nodeName, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaDetailInfoByPartitionIDSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaDetailInfoByPartitionIDResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaDetailInfoByPartitionID", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer prepares the GetDeployedServiceReplicaDetailInfoByPartitionID request. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDSender sends the GetDeployedServiceReplicaDetailInfoByPartitionID request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaDetailInfoByPartitionIDResponder handles the response to the GetDeployedServiceReplicaDetailInfoByPartitionID request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaDetailInfoByPartitionIDResponder(resp *http.Response) (result DeployedServiceReplicaDetailInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceReplicaInfoList gets the list containing the information about replicas deployed on a Service +// Fabric node. The information include partition ID, replica ID, status of the replica, name of the service, name of +// the service type, and other information. Use PartitionId or ServiceManifestName query parameters to return +// information about the deployed replicas matching the specified values for those parameters. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// partitionID - the identity of the partition. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceReplicaInfoList(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (result ListDeployedServiceReplicaInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceReplicaInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", err.Error()) + } + + req, err := client.GetDeployedServiceReplicaInfoListPreparer(ctx, nodeName, applicationID, partitionID, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceReplicaInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceReplicaInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceReplicaInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceReplicaInfoListPreparer prepares the GetDeployedServiceReplicaInfoList request. +func (client BaseClient) GetDeployedServiceReplicaInfoListPreparer(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if partitionID != nil { + queryParameters["PartitionId"] = autorest.Encode("query", *partitionID) + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceReplicaInfoListSender sends the GetDeployedServiceReplicaInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceReplicaInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceReplicaInfoListResponder handles the response to the GetDeployedServiceReplicaInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceReplicaInfoListResponder(resp *http.Response) (result ListDeployedServiceReplicaInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceTypeInfoByName gets the list containing the information about a specific service type from the +// applications deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its +// registration status, the code package that registered it and activation ID of the service package. Each entry +// represents one activation of a service type, differentiated by the activation ID. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceTypeName - specifies the name of a Service Fabric service type. +// serviceManifestName - the name of the service manifest to filter the list of deployed service type +// information. If specified, the response will only contain the information about service types that are +// defined in this service manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceTypeInfoByName(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (result ListDeployedServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceTypeInfoByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", err.Error()) + } + + req, err := client.GetDeployedServiceTypeInfoByNamePreparer(ctx, nodeName, applicationID, serviceTypeName, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceTypeInfoByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceTypeInfoByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoByName", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceTypeInfoByNamePreparer prepares the GetDeployedServiceTypeInfoByName request. +func (client BaseClient) GetDeployedServiceTypeInfoByNamePreparer(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "serviceTypeName": serviceTypeName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes/{serviceTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceTypeInfoByNameSender sends the GetDeployedServiceTypeInfoByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceTypeInfoByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceTypeInfoByNameResponder handles the response to the GetDeployedServiceTypeInfoByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceTypeInfoByNameResponder(resp *http.Response) (result ListDeployedServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetDeployedServiceTypeInfoList gets the list containing the information about service types from the applications +// deployed on a node in a Service Fabric cluster. The response includes the name of the service type, its registration +// status, the code package that registered it and activation ID of the service package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of the service manifest to filter the list of deployed service type +// information. If specified, the response will only contain the information about service types that are +// defined in this service manifest. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetDeployedServiceTypeInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (result ListDeployedServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetDeployedServiceTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", err.Error()) + } + + req, err := client.GetDeployedServiceTypeInfoListPreparer(ctx, nodeName, applicationID, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetDeployedServiceTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetDeployedServiceTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetDeployedServiceTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetDeployedServiceTypeInfoListPreparer prepares the GetDeployedServiceTypeInfoList request. +func (client BaseClient) GetDeployedServiceTypeInfoListPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceManifestName) > 0 { + queryParameters["ServiceManifestName"] = autorest.Encode("query", serviceManifestName) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServiceTypes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetDeployedServiceTypeInfoListSender sends the GetDeployedServiceTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetDeployedServiceTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetDeployedServiceTypeInfoListResponder handles the response to the GetDeployedServiceTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetDeployedServiceTypeInfoListResponder(resp *http.Response) (result ListDeployedServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetFaultOperationList gets the list of user-induced fault operations filtered by provided input. +// Parameters: +// typeFilter - used to filter on OperationType for user-induced operations. +// +// - 65535 - select all +// - 1 - select PartitionDataLoss. +// - 2 - select PartitionQuorumLoss. +// - 4 - select PartitionRestart. +// - 8 - select NodeTransition. +// stateFilter - used to filter on OperationState's for user-induced operations. +// +// - 65535 - select All +// - 1 - select Running +// - 2 - select RollingBack +// - 8 - select Completed +// - 16 - select Faulted +// - 32 - select Cancelled +// - 64 - select ForceCancelled +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetFaultOperationList(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (result ListOperationStatus, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetFaultOperationList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetFaultOperationList", err.Error()) + } + + req, err := client.GetFaultOperationListPreparer(ctx, typeFilter, stateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", nil, "Failure preparing request") + return + } + + resp, err := client.GetFaultOperationListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", resp, "Failure sending request") + return + } + + result, err = client.GetFaultOperationListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetFaultOperationList", resp, "Failure responding to request") + } + + return +} + +// GetFaultOperationListPreparer prepares the GetFaultOperationList request. +func (client BaseClient) GetFaultOperationListPreparer(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "StateFilter": autorest.Encode("query", stateFilter), + "TypeFilter": autorest.Encode("query", typeFilter), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Faults/"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetFaultOperationListSender sends the GetFaultOperationList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetFaultOperationListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetFaultOperationListResponder handles the response to the GetFaultOperationList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetFaultOperationListResponder(resp *http.Response) (result ListOperationStatus, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreContent returns the information about the image store content at the specified contentPath. The +// contentPath is relative to the root of the image store. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result ImageStoreContent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreContent") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreContent", err.Error()) + } + + req, err := client.GetImageStoreContentPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreContentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreContent", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreContentPreparer prepares the GetImageStoreContent request. +func (client BaseClient) GetImageStoreContentPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreContentSender sends the GetImageStoreContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreContentResponder handles the response to the GetImageStoreContent request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreContentResponder(resp *http.Response) (result ImageStoreContent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreRootContent returns the information about the image store content at the root of the image store. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreRootContent(ctx context.Context, timeout *int64) (result ImageStoreContent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreRootContent") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreRootContent", err.Error()) + } + + req, err := client.GetImageStoreRootContentPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreRootContentSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreRootContentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreRootContent", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreRootContentPreparer prepares the GetImageStoreRootContent request. +func (client BaseClient) GetImageStoreRootContentPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreRootContentSender sends the GetImageStoreRootContent request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreRootContentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreRootContentResponder handles the response to the GetImageStoreRootContent request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreRootContentResponder(resp *http.Response) (result ImageStoreContent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreUploadSessionByID gets the image store upload session identified by the given ID. User can query the +// upload session at any time during uploading. +// Parameters: +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreUploadSessionByID(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result UploadSession, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreUploadSessionByID") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreUploadSessionByID", err.Error()) + } + + req, err := client.GetImageStoreUploadSessionByIDPreparer(ctx, sessionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreUploadSessionByIDSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreUploadSessionByIDResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByID", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreUploadSessionByIDPreparer prepares the GetImageStoreUploadSessionByID request. +func (client BaseClient) GetImageStoreUploadSessionByIDPreparer(ctx context.Context, sessionID uuid.UUID, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ImageStore/$/GetUploadSession"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreUploadSessionByIDSender sends the GetImageStoreUploadSessionByID request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreUploadSessionByIDSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreUploadSessionByIDResponder handles the response to the GetImageStoreUploadSessionByID request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreUploadSessionByIDResponder(resp *http.Response) (result UploadSession, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetImageStoreUploadSessionByPath gets the image store upload session associated with the given image store relative +// path. User can query the upload session at any time during uploading. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetImageStoreUploadSessionByPath(ctx context.Context, contentPath string, timeout *int64) (result UploadSession, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetImageStoreUploadSessionByPath") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", err.Error()) + } + + req, err := client.GetImageStoreUploadSessionByPathPreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", nil, "Failure preparing request") + return + } + + resp, err := client.GetImageStoreUploadSessionByPathSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", resp, "Failure sending request") + return + } + + result, err = client.GetImageStoreUploadSessionByPathResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetImageStoreUploadSessionByPath", resp, "Failure responding to request") + } + + return +} + +// GetImageStoreUploadSessionByPathPreparer prepares the GetImageStoreUploadSessionByPath request. +func (client BaseClient) GetImageStoreUploadSessionByPathPreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}/$/GetUploadSession", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetImageStoreUploadSessionByPathSender sends the GetImageStoreUploadSessionByPath request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetImageStoreUploadSessionByPathSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetImageStoreUploadSessionByPathResponder handles the response to the GetImageStoreUploadSessionByPath request. The method always +// closes the http.Response Body. +func (client BaseClient) GetImageStoreUploadSessionByPathResponder(resp *http.Response) (result UploadSession, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNameExistsInfo returns whether the specified Service Fabric name exists. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNameExistsInfo(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNameExistsInfo") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNameExistsInfo", err.Error()) + } + + req, err := client.GetNameExistsInfoPreparer(ctx, nameID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNameExistsInfoSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNameExistsInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNameExistsInfo", resp, "Failure responding to request") + } + + return +} + +// GetNameExistsInfoPreparer prepares the GetNameExistsInfo request. +func (client BaseClient) GetNameExistsInfoPreparer(ctx context.Context, nameID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNameExistsInfoSender sends the GetNameExistsInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNameExistsInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNameExistsInfoResponder handles the response to the GetNameExistsInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNameExistsInfoResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// GetNodeEventList the response is list of NodeEvent objects. +// Parameters: +// nodeName - the name of the node. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetNodeEventList(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListNodeEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeEventList", err.Error()) + } + + req, err := client.GetNodeEventListPreparer(ctx, nodeName, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", resp, "Failure sending request") + return + } + + result, err = client.GetNodeEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeEventList", resp, "Failure responding to request") + } + + return +} + +// GetNodeEventListPreparer prepares the GetNodeEventList request. +func (client BaseClient) GetNodeEventListPreparer(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Nodes/{nodeName}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeEventListSender sends the GetNodeEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeEventListResponder handles the response to the GetNodeEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeEventListResponder(resp *http.Response) (result ListNodeEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeHealth gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the collection of +// health events reported on the node based on the health state. If the node that you specify by name does not exist in +// the health store, this returns an error. +// Parameters: +// nodeName - the name of the node. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeHealth(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (result NodeHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeHealth", err.Error()) + } + + req, err := client.GetNodeHealthPreparer(ctx, nodeName, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", resp, "Failure sending request") + return + } + + result, err = client.GetNodeHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealth", resp, "Failure responding to request") + } + + return +} + +// GetNodeHealthPreparer prepares the GetNodeHealth request. +func (client BaseClient) GetNodeHealthPreparer(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeHealthSender sends the GetNodeHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeHealthResponder handles the response to the GetNodeHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeHealthResponder(resp *http.Response) (result NodeHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeHealthUsingPolicy gets the health of a Service Fabric node. Use EventsHealthStateFilter to filter the +// collection of health events reported on the node based on the health state. Use ClusterHealthPolicy in the POST body +// to override the health policies used to evaluate the health. If the node that you specify by name does not exist in +// the health store, this returns an error. +// Parameters: +// nodeName - the name of the node. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// clusterHealthPolicy - describes the health policies used to evaluate the health of a cluster or node. If not +// present, the health evaluation uses the health policy from cluster manifest or the default health policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeHealthUsingPolicy(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *ClusterHealthPolicy, timeout *int64) (result NodeHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeHealthUsingPolicy", err.Error()) + } + + req, err := client.GetNodeHealthUsingPolicyPreparer(ctx, nodeName, eventsHealthStateFilter, clusterHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetNodeHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetNodeHealthUsingPolicyPreparer prepares the GetNodeHealthUsingPolicy request. +func (client BaseClient) GetNodeHealthUsingPolicyPreparer(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *ClusterHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if clusterHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(clusterHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeHealthUsingPolicySender sends the GetNodeHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeHealthUsingPolicyResponder handles the response to the GetNodeHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeHealthUsingPolicyResponder(resp *http.Response) (result NodeHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeInfo the response includes the name, status, ID, health, uptime, and other details about the node. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeInfo(ctx context.Context, nodeName string, timeout *int64) (result NodeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeInfo", err.Error()) + } + + req, err := client.GetNodeInfoPreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNodeInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfo", resp, "Failure responding to request") + } + + return +} + +// GetNodeInfoPreparer prepares the GetNodeInfo request. +func (client BaseClient) GetNodeInfoPreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeInfoSender sends the GetNodeInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeInfoResponder handles the response to the GetNodeInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeInfoResponder(resp *http.Response) (result NodeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeInfoList the response includes the name, status, ID, health, uptime, and other details about the nodes. +// Parameters: +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// nodeStatusFilter - allows filtering the nodes based on the NodeStatus. Only the nodes that are matching the +// specified filter value will be returned. The filter value can be one of the following. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeInfoList(ctx context.Context, continuationToken string, nodeStatusFilter NodeStatusFilter, maxResults *int64, timeout *int64) (result PagedNodeInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeInfoList", err.Error()) + } + + req, err := client.GetNodeInfoListPreparer(ctx, continuationToken, nodeStatusFilter, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetNodeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetNodeInfoListPreparer prepares the GetNodeInfoList request. +func (client BaseClient) GetNodeInfoListPreparer(ctx context.Context, continuationToken string, nodeStatusFilter NodeStatusFilter, maxResults *int64, timeout *int64) (*http.Request, error) { + const APIVersion = "6.3" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if len(string(nodeStatusFilter)) > 0 { + queryParameters["NodeStatusFilter"] = autorest.Encode("query", nodeStatusFilter) + } else { + queryParameters["NodeStatusFilter"] = autorest.Encode("query", "default") + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Nodes"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeInfoListSender sends the GetNodeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeInfoListResponder handles the response to the GetNodeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeInfoListResponder(resp *http.Response) (result PagedNodeInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeLoadInfo retrieves the load information of a Service Fabric node for all the metrics that have load or +// capacity defined. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeLoadInfo(ctx context.Context, nodeName string, timeout *int64) (result NodeLoadInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeLoadInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeLoadInfo", err.Error()) + } + + req, err := client.GetNodeLoadInfoPreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeLoadInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", resp, "Failure sending request") + return + } + + result, err = client.GetNodeLoadInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeLoadInfo", resp, "Failure responding to request") + } + + return +} + +// GetNodeLoadInfoPreparer prepares the GetNodeLoadInfo request. +func (client BaseClient) GetNodeLoadInfoPreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeLoadInfoSender sends the GetNodeLoadInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeLoadInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeLoadInfoResponder handles the response to the GetNodeLoadInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeLoadInfoResponder(resp *http.Response) (result NodeLoadInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodesEventList the response is list of NodeEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetNodesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListNodeEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodesEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodesEventList", err.Error()) + } + + req, err := client.GetNodesEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodesEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", resp, "Failure sending request") + return + } + + result, err = client.GetNodesEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodesEventList", resp, "Failure responding to request") + } + + return +} + +// GetNodesEventListPreparer prepares the GetNodesEventList request. +func (client BaseClient) GetNodesEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Nodes/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodesEventListSender sends the GetNodesEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodesEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodesEventListResponder handles the response to the GetNodesEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodesEventListResponder(resp *http.Response) (result ListNodeEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNodeTransitionProgress gets the progress of an operation started with StartNodeTransition using the provided +// OperationId. +// Parameters: +// nodeName - the name of the node. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetNodeTransitionProgress(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (result NodeTransitionProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetNodeTransitionProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetNodeTransitionProgress", err.Error()) + } + + req, err := client.GetNodeTransitionProgressPreparer(ctx, nodeName, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetNodeTransitionProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", resp, "Failure sending request") + return + } + + result, err = client.GetNodeTransitionProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetNodeTransitionProgress", resp, "Failure responding to request") + } + + return +} + +// GetNodeTransitionProgressPreparer prepares the GetNodeTransitionProgress request. +func (client BaseClient) GetNodeTransitionProgressPreparer(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Nodes/{nodeName}/$/GetTransitionProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNodeTransitionProgressSender sends the GetNodeTransitionProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetNodeTransitionProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetNodeTransitionProgressResponder handles the response to the GetNodeTransitionProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetNodeTransitionProgressResponder(resp *http.Response) (result NodeTransitionProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupConfigurationInfo gets the Service Fabric Backup configuration information for the specified +// partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionBackupConfigurationInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result PartitionBackupConfigurationInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetPartitionBackupConfigurationInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupConfigurationInfoPreparer prepares the GetPartitionBackupConfigurationInfo request. +func (client BaseClient) GetPartitionBackupConfigurationInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupConfigurationInfoSender sends the GetPartitionBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupConfigurationInfoResponder handles the response to the GetPartitionBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupConfigurationInfoResponder(resp *http.Response) (result PartitionBackupConfigurationInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupList returns a list of backups available for the specified partition. The server enumerates all +// the backups available in the backup store configured in the backup policy. It also allows filtering of the result +// based on start and end datetime or just fetching the latest available backup for the partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +func (client BaseClient) GetPartitionBackupList(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupList", err.Error()) + } + + req, err := client.GetPartitionBackupListPreparer(ctx, partitionID, timeout, latest, startDateTimeFilter, endDateTimeFilter) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupListPreparer prepares the GetPartitionBackupList request. +func (client BaseClient) GetPartitionBackupListPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupListSender sends the GetPartitionBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupListResponder handles the response to the GetPartitionBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionBackupProgress returns information about the state of the latest backup along with details or failure +// reason in case of completion. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionBackupProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result BackupProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionBackupProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionBackupProgress", err.Error()) + } + + req, err := client.GetPartitionBackupProgressPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionBackupProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionBackupProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionBackupProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionBackupProgressPreparer prepares the GetPartitionBackupProgress request. +func (client BaseClient) GetPartitionBackupProgressPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetBackupProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionBackupProgressSender sends the GetPartitionBackupProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionBackupProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionBackupProgressResponder handles the response to the GetPartitionBackupProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionBackupProgressResponder(resp *http.Response) (result BackupProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionEventList the response is list of PartitionEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListPartitionEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionEventList", err.Error()) + } + + req, err := client.GetPartitionEventListPreparer(ctx, partitionID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionEventListPreparer prepares the GetPartitionEventList request. +func (client BaseClient) GetPartitionEventListPreparer(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionEventListSender sends the GetPartitionEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionEventListResponder handles the response to the GetPartitionEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionEventListResponder(resp *http.Response) (result ListPartitionEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionHealth use EventsHealthStateFilter to filter the collection of health events reported on the service +// based on the health state. +// Use ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition. +// If you specify a partition that does not exist in the health store, this request returns an error. +// Parameters: +// partitionID - the identity of the partition. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// replicasHealthStateFilter - allows filtering the collection of ReplicaHealthState objects on the partition. +// The value can be obtained from members or bitwise operations on members of HealthStateFilter. Only replicas +// that match the filter will be returned. All replicas will be used to evaluate the aggregated health state. +// If not specified, all entries will be returned.The state values are flag-based enumeration, so the value +// could be a combination of these values obtained using bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) will be returned. The +// possible values for this parameter include integer value of one of the following health states. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionHealth(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result PartitionHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionHealth", err.Error()) + } + + req, err := client.GetPartitionHealthPreparer(ctx, partitionID, eventsHealthStateFilter, replicasHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealth", resp, "Failure responding to request") + } + + return +} + +// GetPartitionHealthPreparer prepares the GetPartitionHealth request. +func (client BaseClient) GetPartitionHealthPreparer(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if replicasHealthStateFilter != nil { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", *replicasHealthStateFilter) + } else { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionHealthSender sends the GetPartitionHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionHealthResponder handles the response to the GetPartitionHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionHealthResponder(resp *http.Response) (result PartitionHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionHealthUsingPolicy gets the health information of the specified partition. +// If the application health policy is specified, the health evaluation uses it to get the aggregated health state. +// If the policy is not specified, the health evaluation uses the application health policy defined in the application +// manifest, or the default health policy, if no policy is defined in the manifest. +// Use EventsHealthStateFilter to filter the collection of health events reported on the partition based on the health +// state. +// Use ReplicasHealthStateFilter to filter the collection of ReplicaHealthState objects on the partition. Use +// ApplicationHealthPolicy in the POST body to override the health policies used to evaluate the health. +// If you specify a partition that does not exist in the health store, this request returns an error. +// Parameters: +// partitionID - the identity of the partition. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// replicasHealthStateFilter - allows filtering the collection of ReplicaHealthState objects on the partition. +// The value can be obtained from members or bitwise operations on members of HealthStateFilter. Only replicas +// that match the filter will be returned. All replicas will be used to evaluate the aggregated health state. +// If not specified, all entries will be returned.The state values are flag-based enumeration, so the value +// could be a combination of these values obtained using bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) will be returned. The +// possible values for this parameter include integer value of one of the following health states. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result PartitionHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", err.Error()) + } + + req, err := client.GetPartitionHealthUsingPolicyPreparer(ctx, partitionID, eventsHealthStateFilter, replicasHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetPartitionHealthUsingPolicyPreparer prepares the GetPartitionHealthUsingPolicy request. +func (client BaseClient) GetPartitionHealthUsingPolicyPreparer(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if replicasHealthStateFilter != nil { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", *replicasHealthStateFilter) + } else { + queryParameters["ReplicasHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionHealthUsingPolicySender sends the GetPartitionHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionHealthUsingPolicyResponder handles the response to the GetPartitionHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionHealthUsingPolicyResponder(resp *http.Response) (result PartitionHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionInfo gets the information about the specified partition. The response includes the partition ID, +// partitioning scheme information, keys supported by the partition, status, health, and other details about the +// partition. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result ServicePartitionInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionInfo", err.Error()) + } + + req, err := client.GetPartitionInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfo", resp, "Failure responding to request") + } + + return +} + +// GetPartitionInfoPreparer prepares the GetPartitionInfo request. +func (client BaseClient) GetPartitionInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionInfoSender sends the GetPartitionInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionInfoResponder handles the response to the GetPartitionInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionInfoResponder(resp *http.Response) (result ServicePartitionInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionInfoList the response includes the partition ID, partitioning scheme information, keys supported by the +// partition, status, health, and other details about the partition. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionInfoList(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (result PagedServicePartitionInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionInfoList", err.Error()) + } + + req, err := client.GetPartitionInfoListPreparer(ctx, serviceID, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionInfoListPreparer prepares the GetPartitionInfoList request. +func (client BaseClient) GetPartitionInfoListPreparer(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetPartitions", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionInfoListSender sends the GetPartitionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionInfoListResponder handles the response to the GetPartitionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionInfoListResponder(resp *http.Response) (result PagedServicePartitionInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionLoadInformation returns information about the load of a specified partition. +// The response includes a list of load reports for a Service Fabric partition. +// Each report includes the load metric name, value, and last reported time in UTC. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionLoadInformation(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result PartitionLoadInformation, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionLoadInformation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionLoadInformation", err.Error()) + } + + req, err := client.GetPartitionLoadInformationPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionLoadInformationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionLoadInformationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionLoadInformation", resp, "Failure responding to request") + } + + return +} + +// GetPartitionLoadInformationPreparer prepares the GetPartitionLoadInformation request. +func (client BaseClient) GetPartitionLoadInformationPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetLoadInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionLoadInformationSender sends the GetPartitionLoadInformation request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionLoadInformationSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionLoadInformationResponder handles the response to the GetPartitionLoadInformation request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionLoadInformationResponder(resp *http.Response) (result PartitionLoadInformation, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionReplicaEventList the response is list of ReplicaEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionReplicaEventList(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListReplicaEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionReplicaEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionReplicaEventList", err.Error()) + } + + req, err := client.GetPartitionReplicaEventListPreparer(ctx, partitionID, replicaID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionReplicaEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionReplicaEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicaEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionReplicaEventListPreparer prepares the GetPartitionReplicaEventList request. +func (client BaseClient) GetPartitionReplicaEventListPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Replicas/{replicaId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionReplicaEventListSender sends the GetPartitionReplicaEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionReplicaEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionReplicaEventListResponder handles the response to the GetPartitionReplicaEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionReplicaEventListResponder(resp *http.Response) (result ListReplicaEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionReplicasEventList the response is list of ReplicaEvent objects. +// Parameters: +// partitionID - the identity of the partition. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionReplicasEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListReplicaEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionReplicasEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionReplicasEventList", err.Error()) + } + + req, err := client.GetPartitionReplicasEventListPreparer(ctx, partitionID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionReplicasEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionReplicasEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionReplicasEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionReplicasEventListPreparer prepares the GetPartitionReplicasEventList request. +func (client BaseClient) GetPartitionReplicasEventListPreparer(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Partitions/{partitionId}/$/Replicas/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionReplicasEventListSender sends the GetPartitionReplicasEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionReplicasEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionReplicasEventListResponder handles the response to the GetPartitionReplicasEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionReplicasEventListResponder(resp *http.Response) (result ListReplicaEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionRestartProgress gets the progress of a PartitionRestart started with StartPartitionRestart using the +// provided OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionRestartProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionRestartProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionRestartProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionRestartProgress", err.Error()) + } + + req, err := client.GetPartitionRestartProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionRestartProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionRestartProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestartProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionRestartProgressPreparer prepares the GetPartitionRestartProgress request. +func (client BaseClient) GetPartitionRestartProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetRestartProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionRestartProgressSender sends the GetPartitionRestartProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionRestartProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionRestartProgressResponder handles the response to the GetPartitionRestartProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionRestartProgressResponder(resp *http.Response) (result PartitionRestartProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionRestoreProgress returns information about the state of the latest restore operation along with details +// or failure reason in case of completion. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPartitionRestoreProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result RestoreProgressInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionRestoreProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionRestoreProgress", err.Error()) + } + + req, err := client.GetPartitionRestoreProgressPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionRestoreProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionRestoreProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionRestoreProgress", resp, "Failure responding to request") + } + + return +} + +// GetPartitionRestoreProgressPreparer prepares the GetPartitionRestoreProgress request. +func (client BaseClient) GetPartitionRestoreProgressPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetRestoreProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionRestoreProgressSender sends the GetPartitionRestoreProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionRestoreProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionRestoreProgressResponder handles the response to the GetPartitionRestoreProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionRestoreProgressResponder(resp *http.Response) (result RestoreProgressInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPartitionsEventList the response is list of PartitionEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetPartitionsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListPartitionEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPartitionsEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPartitionsEventList", err.Error()) + } + + req, err := client.GetPartitionsEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPartitionsEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", resp, "Failure sending request") + return + } + + result, err = client.GetPartitionsEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPartitionsEventList", resp, "Failure responding to request") + } + + return +} + +// GetPartitionsEventListPreparer prepares the GetPartitionsEventList request. +func (client BaseClient) GetPartitionsEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Partitions/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPartitionsEventListSender sends the GetPartitionsEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPartitionsEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPartitionsEventListResponder handles the response to the GetPartitionsEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPartitionsEventListResponder(resp *http.Response) (result ListPartitionEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPropertyInfo gets the specified Service Fabric property under a given name. This will always return both value +// and metadata. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyName - specifies the name of the property to get. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPropertyInfo(ctx context.Context, nameID string, propertyName string, timeout *int64) (result PropertyInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPropertyInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPropertyInfo", err.Error()) + } + + req, err := client.GetPropertyInfoPreparer(ctx, nameID, propertyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetPropertyInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", resp, "Failure sending request") + return + } + + result, err = client.GetPropertyInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfo", resp, "Failure responding to request") + } + + return +} + +// GetPropertyInfoPreparer prepares the GetPropertyInfo request. +func (client BaseClient) GetPropertyInfoPreparer(ctx context.Context, nameID string, propertyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "PropertyName": autorest.Encode("query", propertyName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPropertyInfoSender sends the GetPropertyInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPropertyInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPropertyInfoResponder handles the response to the GetPropertyInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPropertyInfoResponder(resp *http.Response) (result PropertyInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetPropertyInfoList a Service Fabric name can have one or more named properties that store custom information. This +// operation gets the information about these properties in a paged list. The information includes name, value, and +// metadata about each of the properties. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// includeValues - allows specifying whether to include the values of the properties returned. True if values +// should be returned with the metadata; False to return only property metadata. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetPropertyInfoList(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (result PagedPropertyInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetPropertyInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetPropertyInfoList", err.Error()) + } + + req, err := client.GetPropertyInfoListPreparer(ctx, nameID, includeValues, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetPropertyInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetPropertyInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetPropertyInfoList", resp, "Failure responding to request") + } + + return +} + +// GetPropertyInfoListPreparer prepares the GetPropertyInfoList request. +func (client BaseClient) GetPropertyInfoListPreparer(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if includeValues != nil { + queryParameters["IncludeValues"] = autorest.Encode("query", *includeValues) + } else { + queryParameters["IncludeValues"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperties", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetPropertyInfoListSender sends the GetPropertyInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetPropertyInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetPropertyInfoListResponder handles the response to the GetPropertyInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetPropertyInfoListResponder(resp *http.Response) (result PagedPropertyInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetProvisionedFabricCodeVersionInfoList gets a list of information about fabric code versions that are provisioned +// in the cluster. The parameter CodeVersion can be used to optionally filter the output to only that particular +// version. +// Parameters: +// codeVersion - the product version of Service Fabric. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoList(ctx context.Context, codeVersion string, timeout *int64) (result ListFabricCodeVersionInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetProvisionedFabricCodeVersionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", err.Error()) + } + + req, err := client.GetProvisionedFabricCodeVersionInfoListPreparer(ctx, codeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetProvisionedFabricCodeVersionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetProvisionedFabricCodeVersionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricCodeVersionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetProvisionedFabricCodeVersionInfoListPreparer prepares the GetProvisionedFabricCodeVersionInfoList request. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListPreparer(ctx context.Context, codeVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(codeVersion) > 0 { + queryParameters["CodeVersion"] = autorest.Encode("query", codeVersion) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetProvisionedCodeVersions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetProvisionedFabricCodeVersionInfoListSender sends the GetProvisionedFabricCodeVersionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetProvisionedFabricCodeVersionInfoListResponder handles the response to the GetProvisionedFabricCodeVersionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetProvisionedFabricCodeVersionInfoListResponder(resp *http.Response) (result ListFabricCodeVersionInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetProvisionedFabricConfigVersionInfoList gets a list of information about fabric config versions that are +// provisioned in the cluster. The parameter ConfigVersion can be used to optionally filter the output to only that +// particular version. +// Parameters: +// configVersion - the config version of Service Fabric. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoList(ctx context.Context, configVersion string, timeout *int64) (result ListFabricConfigVersionInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetProvisionedFabricConfigVersionInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", err.Error()) + } + + req, err := client.GetProvisionedFabricConfigVersionInfoListPreparer(ctx, configVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetProvisionedFabricConfigVersionInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetProvisionedFabricConfigVersionInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetProvisionedFabricConfigVersionInfoList", resp, "Failure responding to request") + } + + return +} + +// GetProvisionedFabricConfigVersionInfoListPreparer prepares the GetProvisionedFabricConfigVersionInfoList request. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListPreparer(ctx context.Context, configVersion string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(configVersion) > 0 { + queryParameters["ConfigVersion"] = autorest.Encode("query", configVersion) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetProvisionedConfigVersions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetProvisionedFabricConfigVersionInfoListSender sends the GetProvisionedFabricConfigVersionInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetProvisionedFabricConfigVersionInfoListResponder handles the response to the GetProvisionedFabricConfigVersionInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetProvisionedFabricConfigVersionInfoListResponder(resp *http.Response) (result ListFabricConfigVersionInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetQuorumLossProgress gets the progress of a quorum loss operation started with StartQuorumLoss, using the provided +// OperationId. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetQuorumLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result PartitionQuorumLossProgress, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetQuorumLossProgress") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetQuorumLossProgress", err.Error()) + } + + req, err := client.GetQuorumLossProgressPreparer(ctx, serviceID, partitionID, operationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", nil, "Failure preparing request") + return + } + + resp, err := client.GetQuorumLossProgressSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", resp, "Failure sending request") + return + } + + result, err = client.GetQuorumLossProgressResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetQuorumLossProgress", resp, "Failure responding to request") + } + + return +} + +// GetQuorumLossProgressPreparer prepares the GetQuorumLossProgress request. +func (client BaseClient) GetQuorumLossProgressPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/GetQuorumLossProgress", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetQuorumLossProgressSender sends the GetQuorumLossProgress request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetQuorumLossProgressSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetQuorumLossProgressResponder handles the response to the GetQuorumLossProgress request. The method always +// closes the http.Response Body. +func (client BaseClient) GetQuorumLossProgressResponder(resp *http.Response) (result PartitionQuorumLossProgress, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetRepairTaskList this API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// taskIDFilter - the repair task ID prefix to be matched. +// stateFilter - a bitwise-OR of the following values, specifying which task states should be included in the +// result list. +// +// - 1 - Created +// - 2 - Claimed +// - 4 - Preparing +// - 8 - Approved +// - 16 - Executing +// - 32 - Restoring +// - 64 - Completed +// executorFilter - the name of the repair executor whose claimed tasks should be included in the list. +func (client BaseClient) GetRepairTaskList(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (result ListRepairTask, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetRepairTaskList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetRepairTaskListPreparer(ctx, taskIDFilter, stateFilter, executorFilter) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", nil, "Failure preparing request") + return + } + + resp, err := client.GetRepairTaskListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", resp, "Failure sending request") + return + } + + result, err = client.GetRepairTaskListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetRepairTaskList", resp, "Failure responding to request") + } + + return +} + +// GetRepairTaskListPreparer prepares the GetRepairTaskList request. +func (client BaseClient) GetRepairTaskListPreparer(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(taskIDFilter) > 0 { + queryParameters["TaskIdFilter"] = autorest.Encode("query", taskIDFilter) + } + if stateFilter != nil { + queryParameters["StateFilter"] = autorest.Encode("query", *stateFilter) + } + if len(executorFilter) > 0 { + queryParameters["ExecutorFilter"] = autorest.Encode("query", executorFilter) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetRepairTaskList"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetRepairTaskListSender sends the GetRepairTaskList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetRepairTaskListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetRepairTaskListResponder handles the response to the GetRepairTaskList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetRepairTaskListResponder(resp *http.Response) (result ListRepairTask, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaHealth gets the health of a Service Fabric replica. +// Use EventsHealthStateFilter to filter the collection of health events reported on the replica based on the health +// state. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (result ReplicaHealthModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaHealth", err.Error()) + } + + req, err := client.GetReplicaHealthPreparer(ctx, partitionID, replicaID, eventsHealthStateFilter, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealth", resp, "Failure responding to request") + } + + return +} + +// GetReplicaHealthPreparer prepares the GetReplicaHealth request. +func (client BaseClient) GetReplicaHealthPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaHealthSender sends the GetReplicaHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaHealthResponder handles the response to the GetReplicaHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaHealthResponder(resp *http.Response) (result ReplicaHealthModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaHealthUsingPolicy gets the health of a Service Fabric stateful service replica or stateless service +// instance. +// Use EventsHealthStateFilter to filter the collection of health events reported on the cluster based on the health +// state. +// Use ApplicationHealthPolicy to optionally override the health policies used to evaluate the health. This API only +// uses 'ConsiderWarningAsError' field of the ApplicationHealthPolicy. The rest of the fields are ignored while +// evaluating the health of the replica. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (result ReplicaHealthModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", err.Error()) + } + + req, err := client.GetReplicaHealthUsingPolicyPreparer(ctx, partitionID, replicaID, eventsHealthStateFilter, applicationHealthPolicy, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetReplicaHealthUsingPolicyPreparer prepares the GetReplicaHealthUsingPolicy request. +func (client BaseClient) GetReplicaHealthUsingPolicyPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaHealthUsingPolicySender sends the GetReplicaHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaHealthUsingPolicyResponder handles the response to the GetReplicaHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaHealthUsingPolicyResponder(resp *http.Response) (result ReplicaHealthModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaInfo the response includes the ID, role, status, health, node name, uptime, and other details about the +// replica. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaInfo(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (result ReplicaInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaInfo", err.Error()) + } + + req, err := client.GetReplicaInfoPreparer(ctx, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfo", resp, "Failure responding to request") + } + + return +} + +// GetReplicaInfoPreparer prepares the GetReplicaInfo request. +func (client BaseClient) GetReplicaInfoPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaInfoSender sends the GetReplicaInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaInfoResponder handles the response to the GetReplicaInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaInfoResponder(resp *http.Response) (result ReplicaInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetReplicaInfoList the GetReplicas endpoint returns information about the replicas of the specified partition. The +// response includes the ID, role, status, health, node name, uptime, and other details about the replica. +// Parameters: +// partitionID - the identity of the partition. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetReplicaInfoList(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (result PagedReplicaInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetReplicaInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetReplicaInfoList", err.Error()) + } + + req, err := client.GetReplicaInfoListPreparer(ctx, partitionID, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetReplicaInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetReplicaInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetReplicaInfoList", resp, "Failure responding to request") + } + + return +} + +// GetReplicaInfoListPreparer prepares the GetReplicaInfoList request. +func (client BaseClient) GetReplicaInfoListPreparer(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetReplicaInfoListSender sends the GetReplicaInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetReplicaInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetReplicaInfoListResponder handles the response to the GetReplicaInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetReplicaInfoListResponder(resp *http.Response) (result PagedReplicaInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceBackupConfigurationInfo gets the Service Fabric backup configuration information for the service and the +// partitions under this service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceBackupConfigurationInfo(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (result PagedBackupConfigurationInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceBackupConfigurationInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", err.Error()) + } + + req, err := client.GetServiceBackupConfigurationInfoPreparer(ctx, serviceID, continuationToken, maxResults, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceBackupConfigurationInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceBackupConfigurationInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupConfigurationInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceBackupConfigurationInfoPreparer prepares the GetServiceBackupConfigurationInfo request. +func (client BaseClient) GetServiceBackupConfigurationInfoPreparer(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetBackupConfigurationInfo", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceBackupConfigurationInfoSender sends the GetServiceBackupConfigurationInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceBackupConfigurationInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceBackupConfigurationInfoResponder handles the response to the GetServiceBackupConfigurationInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceBackupConfigurationInfoResponder(resp *http.Response) (result PagedBackupConfigurationInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceBackupList returns a list of backups available for every partition in this Service Fabric service. The +// server enumerates all the backups available in the backup store configured in the backup policy. It also allows +// filtering of the result based on start and end datetime or just fetching the latest available backup for every +// partition. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// latest - specifies whether to get only the most recent backup available for a partition for the specified +// time range. +// startDateTimeFilter - specify the start date time from which to enumerate backups, in datetime format. The +// date time must be specified in ISO8601 format. This is an optional parameter. If not specified, all backups +// from the beginning are enumerated. +// endDateTimeFilter - specify the end date time till which to enumerate backups, in datetime format. The date +// time must be specified in ISO8601 format. This is an optional parameter. If not specified, enumeration is +// done till the most recent backup. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// maxResults - the maximum number of results to be returned as part of the paged queries. This parameter +// defines the upper bound on the number of results returned. The results returned can be less than the +// specified maximum results if they do not fit in the message as per the max message size restrictions defined +// in the configuration. If this parameter is zero or not specified, the paged query includes as many results +// as possible that fit in the return message. +func (client BaseClient) GetServiceBackupList(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result PagedBackupInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceBackupList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: maxResults, + Constraints: []validation.Constraint{{Target: "maxResults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "maxResults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceBackupList", err.Error()) + } + + req, err := client.GetServiceBackupListPreparer(ctx, serviceID, timeout, latest, startDateTimeFilter, endDateTimeFilter, continuationToken, maxResults) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceBackupListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceBackupListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceBackupList", resp, "Failure responding to request") + } + + return +} + +// GetServiceBackupListPreparer prepares the GetServiceBackupList request. +func (client BaseClient) GetServiceBackupListPreparer(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if latest != nil { + queryParameters["Latest"] = autorest.Encode("query", *latest) + } else { + queryParameters["Latest"] = autorest.Encode("query", false) + } + if startDateTimeFilter != nil { + queryParameters["StartDateTimeFilter"] = autorest.Encode("query", *startDateTimeFilter) + } + if endDateTimeFilter != nil { + queryParameters["EndDateTimeFilter"] = autorest.Encode("query", *endDateTimeFilter) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if maxResults != nil { + queryParameters["MaxResults"] = autorest.Encode("query", *maxResults) + } else { + queryParameters["MaxResults"] = autorest.Encode("query", 0) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetBackups", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceBackupListSender sends the GetServiceBackupList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceBackupListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceBackupListResponder handles the response to the GetServiceBackupList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceBackupListResponder(resp *http.Response) (result PagedBackupInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceDescription gets the description of an existing Service Fabric service. A service must be created before +// its description can be obtained. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceDescription(ctx context.Context, serviceID string, timeout *int64) (result ServiceDescriptionModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceDescription") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceDescription", err.Error()) + } + + req, err := client.GetServiceDescriptionPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceDescriptionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", resp, "Failure sending request") + return + } + + result, err = client.GetServiceDescriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceDescription", resp, "Failure responding to request") + } + + return +} + +// GetServiceDescriptionPreparer prepares the GetServiceDescription request. +func (client BaseClient) GetServiceDescriptionPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetDescription", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceDescriptionSender sends the GetServiceDescription request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceDescriptionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceDescriptionResponder handles the response to the GetServiceDescription request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceDescriptionResponder(resp *http.Response) (result ServiceDescriptionModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceEventList the response is list of ServiceEvent objects. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetServiceEventList(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListServiceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceEventList", err.Error()) + } + + req, err := client.GetServiceEventListPreparer(ctx, serviceID, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceEventList", resp, "Failure responding to request") + } + + return +} + +// GetServiceEventListPreparer prepares the GetServiceEventList request. +func (client BaseClient) GetServiceEventListPreparer(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/EventsStore/Services/{serviceId}/$/Events", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceEventListSender sends the GetServiceEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceEventListResponder handles the response to the GetServiceEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceEventListResponder(resp *http.Response) (result ListServiceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceHealth gets the health information of the specified service. +// Use EventsHealthStateFilter to filter the collection of health events reported on the service based on the health +// state. +// Use PartitionsHealthStateFilter to filter the collection of partitions returned. +// If you specify a service that does not exist in the health store, this request returns an error. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// partitionsHealthStateFilter - allows filtering of the partitions health state objects returned in the result +// of service health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only partitions that match the filter are returned. All partitions are used to evaluate the aggregated +// health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these value +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of +// partitions with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceHealth(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result ServiceHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceHealth") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceHealth", err.Error()) + } + + req, err := client.GetServiceHealthPreparer(ctx, serviceID, eventsHealthStateFilter, partitionsHealthStateFilter, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceHealthSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", resp, "Failure sending request") + return + } + + result, err = client.GetServiceHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealth", resp, "Failure responding to request") + } + + return +} + +// GetServiceHealthPreparer prepares the GetServiceHealth request. +func (client BaseClient) GetServiceHealthPreparer(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if partitionsHealthStateFilter != nil { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", *partitionsHealthStateFilter) + } else { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceHealthSender sends the GetServiceHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceHealthResponder handles the response to the GetServiceHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceHealthResponder(resp *http.Response) (result ServiceHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceHealthUsingPolicy gets the health information of the specified service. +// If the application health policy is specified, the health evaluation uses it to get the aggregated health state. +// If the policy is not specified, the health evaluation uses the application health policy defined in the application +// manifest, or the default health policy, if no policy is defined in the manifest. +// Use EventsHealthStateFilter to filter the collection of health events reported on the service based on the health +// state. +// Use PartitionsHealthStateFilter to filter the collection of partitions returned. +// If you specify a service that does not exist in the health store, this request returns an error. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// eventsHealthStateFilter - allows filtering the collection of HealthEvent objects returned based on health +// state. +// The possible values for this parameter include integer value of one of the following health states. +// Only events that match the filter are returned. All events are used to evaluate the aggregated health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these values, obtained using the bitwise 'OR' operator. For example, If the provided +// value is 6 then all of the events with HealthState value of OK (2) and Warning (4) are returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// partitionsHealthStateFilter - allows filtering of the partitions health state objects returned in the result +// of service health query based on their health state. +// The possible values for this parameter include integer value of one of the following health states. +// Only partitions that match the filter are returned. All partitions are used to evaluate the aggregated +// health state. +// If not specified, all entries are returned. The state values are flag-based enumeration, so the value could +// be a combination of these value +// obtained using bitwise 'OR' operator. For example, if the provided value is 6 then health state of +// partitions with HealthState value of OK (2) and Warning (4) will be returned. +// +// - Default - Default value. Matches any HealthState. The value is zero. +// - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given +// collection of states. The value is 1. +// - Ok - Filter that matches input with HealthState value Ok. The value is 2. +// - Warning - Filter that matches input with HealthState value Warning. The value is 4. +// - Error - Filter that matches input with HealthState value Error. The value is 8. +// - All - Filter that matches input with any HealthState value. The value is 65535. +// applicationHealthPolicy - describes the health policies used to evaluate the health of an application or one +// of its children. +// If not present, the health evaluation uses the health policy from application manifest or the default health +// policy. +// excludeHealthStatistics - indicates whether the health statistics should be returned as part of the query +// result. False by default. +// The statistics show the number of children entities in health state Ok, Warning, and Error. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceHealthUsingPolicy(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result ServiceHealth, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceHealthUsingPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceHealthUsingPolicy", err.Error()) + } + + req, err := client.GetServiceHealthUsingPolicyPreparer(ctx, serviceID, eventsHealthStateFilter, partitionsHealthStateFilter, applicationHealthPolicy, excludeHealthStatistics, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceHealthUsingPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", resp, "Failure sending request") + return + } + + result, err = client.GetServiceHealthUsingPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceHealthUsingPolicy", resp, "Failure responding to request") + } + + return +} + +// GetServiceHealthUsingPolicyPreparer prepares the GetServiceHealthUsingPolicy request. +func (client BaseClient) GetServiceHealthUsingPolicyPreparer(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if eventsHealthStateFilter != nil { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", *eventsHealthStateFilter) + } else { + queryParameters["EventsHealthStateFilter"] = autorest.Encode("query", 0) + } + if partitionsHealthStateFilter != nil { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", *partitionsHealthStateFilter) + } else { + queryParameters["PartitionsHealthStateFilter"] = autorest.Encode("query", 0) + } + if excludeHealthStatistics != nil { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", *excludeHealthStatistics) + } else { + queryParameters["ExcludeHealthStatistics"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/GetHealth", pathParameters), + autorest.WithQueryParameters(queryParameters)) + if applicationHealthPolicy != nil { + preparer = autorest.DecoratePreparer(preparer, + autorest.WithJSON(applicationHealthPolicy)) + } + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceHealthUsingPolicySender sends the GetServiceHealthUsingPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceHealthUsingPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceHealthUsingPolicyResponder handles the response to the GetServiceHealthUsingPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceHealthUsingPolicyResponder(resp *http.Response) (result ServiceHealth, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceInfo returns the information about the specified service belonging to the specified Service Fabric +// application. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceInfo(ctx context.Context, applicationID string, serviceID string, timeout *int64) (result ServiceInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceInfo", err.Error()) + } + + req, err := client.GetServiceInfoPreparer(ctx, applicationID, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceInfoPreparer prepares the GetServiceInfo request. +func (client BaseClient) GetServiceInfoPreparer(ctx context.Context, applicationID string, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices/{serviceId}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceInfoSender sends the GetServiceInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceInfoResponder handles the response to the GetServiceInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceInfoResponder(resp *http.Response) (result ServiceInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceInfoList returns the information about all services belonging to the application specified by the +// application ID. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceTypeName - the service type name used to filter the services to query for. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceInfoList(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (result PagedServiceInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceInfoList", err.Error()) + } + + req, err := client.GetServiceInfoListPreparer(ctx, applicationID, serviceTypeName, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceInfoList", resp, "Failure responding to request") + } + + return +} + +// GetServiceInfoListPreparer prepares the GetServiceInfoList request. +func (client BaseClient) GetServiceInfoListPreparer(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(serviceTypeName) > 0 { + queryParameters["ServiceTypeName"] = autorest.Encode("query", serviceTypeName) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/GetServices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceInfoListSender sends the GetServiceInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceInfoListResponder handles the response to the GetServiceInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceInfoListResponder(resp *http.Response) (result PagedServiceInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceManifest gets the manifest describing a service type. The response contains the service manifest XML as a +// string. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (result ServiceTypeManifest, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceManifest") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceManifest", err.Error()) + } + + req, err := client.GetServiceManifestPreparer(ctx, applicationTypeName, applicationTypeVersion, serviceManifestName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceManifestSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", resp, "Failure sending request") + return + } + + result, err = client.GetServiceManifestResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceManifest", resp, "Failure responding to request") + } + + return +} + +// GetServiceManifestPreparer prepares the GetServiceManifest request. +func (client BaseClient) GetServiceManifestPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceManifest", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceManifestSender sends the GetServiceManifest request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceManifestSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceManifestResponder handles the response to the GetServiceManifest request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceManifestResponder(resp *http.Response) (result ServiceTypeManifest, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceNameInfo gets name of the service for the specified partition. A 404 error is returned if the partition ID +// does not exist in the cluster. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceNameInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result ServiceNameInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceNameInfo") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceNameInfo", err.Error()) + } + + req, err := client.GetServiceNameInfoPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceNameInfoSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", resp, "Failure sending request") + return + } + + result, err = client.GetServiceNameInfoResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceNameInfo", resp, "Failure responding to request") + } + + return +} + +// GetServiceNameInfoPreparer prepares the GetServiceNameInfo request. +func (client BaseClient) GetServiceNameInfoPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetServiceName", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceNameInfoSender sends the GetServiceNameInfo request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceNameInfoSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceNameInfoResponder handles the response to the GetServiceNameInfo request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceNameInfoResponder(resp *http.Response) (result ServiceNameInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServicesEventList the response is list of ServiceEvent objects. +// Parameters: +// startTimeUtc - the start time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// endTimeUtc - the end time of a lookup query in ISO UTC yyyy-MM-ddTHH:mm:ssZ. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +// eventsTypesFilter - this is a comma separated string specifying the types of FabricEvents that should only +// be included in the response. +// excludeAnalysisEvents - this param disables the retrieval of AnalysisEvents if true is passed. +// skipCorrelationLookup - this param disables the search of CorrelatedEvents information if true is passed. +// otherwise the CorrelationEvents get processed and HasCorrelatedEvents field in every FabricEvent gets +// populated. +func (client BaseClient) GetServicesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result ListServiceEvent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServicesEventList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServicesEventList", err.Error()) + } + + req, err := client.GetServicesEventListPreparer(ctx, startTimeUtc, endTimeUtc, timeout, eventsTypesFilter, excludeAnalysisEvents, skipCorrelationLookup) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServicesEventListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", resp, "Failure sending request") + return + } + + result, err = client.GetServicesEventListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServicesEventList", resp, "Failure responding to request") + } + + return +} + +// GetServicesEventListPreparer prepares the GetServicesEventList request. +func (client BaseClient) GetServicesEventListPreparer(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (*http.Request, error) { + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "EndTimeUtc": autorest.Encode("query", endTimeUtc), + "StartTimeUtc": autorest.Encode("query", startTimeUtc), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + if len(eventsTypesFilter) > 0 { + queryParameters["EventsTypesFilter"] = autorest.Encode("query", eventsTypesFilter) + } + if excludeAnalysisEvents != nil { + queryParameters["ExcludeAnalysisEvents"] = autorest.Encode("query", *excludeAnalysisEvents) + } + if skipCorrelationLookup != nil { + queryParameters["SkipCorrelationLookup"] = autorest.Encode("query", *skipCorrelationLookup) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/EventsStore/Services/Events"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServicesEventListSender sends the GetServicesEventList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServicesEventListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServicesEventListResponder handles the response to the GetServicesEventList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServicesEventListResponder(resp *http.Response) (result ListServiceEvent, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceTypeInfoByName gets the information about a specific service type that is supported by a provisioned +// application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 status is +// returned. A 204 response is returned if the specified service type is not found in the cluster. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// serviceTypeName - specifies the name of a Service Fabric service type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceTypeInfoByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (result ServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceTypeInfoByName") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceTypeInfoByName", err.Error()) + } + + req, err := client.GetServiceTypeInfoByNamePreparer(ctx, applicationTypeName, applicationTypeVersion, serviceTypeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceTypeInfoByNameSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", resp, "Failure sending request") + return + } + + result, err = client.GetServiceTypeInfoByNameResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoByName", resp, "Failure responding to request") + } + + return +} + +// GetServiceTypeInfoByNamePreparer prepares the GetServiceTypeInfoByName request. +func (client BaseClient) GetServiceTypeInfoByNamePreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + "serviceTypeName": serviceTypeName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes/{serviceTypeName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceTypeInfoByNameSender sends the GetServiceTypeInfoByName request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceTypeInfoByNameSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceTypeInfoByNameResponder handles the response to the GetServiceTypeInfoByName request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceTypeInfoByNameResponder(resp *http.Response) (result ServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusNoContent), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetServiceTypeInfoList gets the list containing the information about service types that are supported by a +// provisioned application type in a Service Fabric cluster. The provided application type must exist. Otherwise, a 404 +// status is returned. +// Parameters: +// applicationTypeName - the name of the application type. +// applicationTypeVersion - the version of the application type. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetServiceTypeInfoList(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result ListServiceTypeInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetServiceTypeInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetServiceTypeInfoList", err.Error()) + } + + req, err := client.GetServiceTypeInfoListPreparer(ctx, applicationTypeName, applicationTypeVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetServiceTypeInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetServiceTypeInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetServiceTypeInfoList", resp, "Failure responding to request") + } + + return +} + +// GetServiceTypeInfoListPreparer prepares the GetServiceTypeInfoList request. +func (client BaseClient) GetServiceTypeInfoListPreparer(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ApplicationTypeVersion": autorest.Encode("query", applicationTypeVersion), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/GetServiceTypes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetServiceTypeInfoListSender sends the GetServiceTypeInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetServiceTypeInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetServiceTypeInfoListResponder handles the response to the GetServiceTypeInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetServiceTypeInfoListResponder(resp *http.Response) (result ListServiceTypeInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetSubNameInfoList enumerates all the Service Fabric names under a given name. If the subnames do not fit in a page, +// one page of results is returned as well as a continuation token, which can be used to get the next page. Querying a +// name that doesn't exist will fail. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// recursive - allows specifying that the search performed should be recursive. +// continuationToken - the continuation token parameter is used to obtain next set of results. A continuation +// token with a non-empty value is included in the response of the API when the results from the system do not +// fit in a single response. When this value is passed to the next API call, the API returns next set of +// results. If there are no further results, then the continuation token does not contain a value. The value of +// this parameter should not be URL encoded. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetSubNameInfoList(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (result PagedSubNameInfoList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetSubNameInfoList") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetSubNameInfoList", err.Error()) + } + + req, err := client.GetSubNameInfoListPreparer(ctx, nameID, recursive, continuationToken, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", nil, "Failure preparing request") + return + } + + resp, err := client.GetSubNameInfoListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", resp, "Failure sending request") + return + } + + result, err = client.GetSubNameInfoListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetSubNameInfoList", resp, "Failure responding to request") + } + + return +} + +// GetSubNameInfoListPreparer prepares the GetSubNameInfoList request. +func (client BaseClient) GetSubNameInfoListPreparer(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if recursive != nil { + queryParameters["Recursive"] = autorest.Encode("query", *recursive) + } else { + queryParameters["Recursive"] = autorest.Encode("query", false) + } + if len(continuationToken) > 0 { + queryParameters["ContinuationToken"] = continuationToken + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetSubNames", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSubNameInfoListSender sends the GetSubNameInfoList request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetSubNameInfoListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetSubNameInfoListResponder handles the response to the GetSubNameInfoList request. The method always +// closes the http.Response Body. +func (client BaseClient) GetSubNameInfoListResponder(resp *http.Response) (result PagedSubNameInfoList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetUpgradeOrchestrationServiceState get the service state of Service Fabric Upgrade Orchestration Service. This API +// is internally used for support purposes. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) GetUpgradeOrchestrationServiceState(ctx context.Context, timeout *int64) (result UpgradeOrchestrationServiceState, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.GetUpgradeOrchestrationServiceState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", err.Error()) + } + + req, err := client.GetUpgradeOrchestrationServiceStatePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", nil, "Failure preparing request") + return + } + + resp, err := client.GetUpgradeOrchestrationServiceStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", resp, "Failure sending request") + return + } + + result, err = client.GetUpgradeOrchestrationServiceStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "GetUpgradeOrchestrationServiceState", resp, "Failure responding to request") + } + + return +} + +// GetUpgradeOrchestrationServiceStatePreparer prepares the GetUpgradeOrchestrationServiceState request. +func (client BaseClient) GetUpgradeOrchestrationServiceStatePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/GetUpgradeOrchestrationServiceState"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetUpgradeOrchestrationServiceStateSender sends the GetUpgradeOrchestrationServiceState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) GetUpgradeOrchestrationServiceStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetUpgradeOrchestrationServiceStateResponder handles the response to the GetUpgradeOrchestrationServiceState request. The method always +// closes the http.Response Body. +func (client BaseClient) GetUpgradeOrchestrationServiceStateResponder(resp *http.Response) (result UpgradeOrchestrationServiceState, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeContainerAPI invoke container API on a container deployed on a Service Fabric node for the given code package. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// serviceManifestName - the name of a service manifest registered as part of an application type in a Service +// Fabric cluster. +// codePackageName - the name of code package specified in service manifest registered as part of an +// application type in a Service Fabric cluster. +// codePackageInstanceID - ID that uniquely identifies a code package instance deployed on a service fabric +// node. +// containerAPIRequestBody - parameters for making container API call +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeContainerAPI(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody ContainerAPIRequestBody, timeout *int64) (result ContainerAPIResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeContainerAPI") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: containerAPIRequestBody, + Constraints: []validation.Constraint{{Target: "containerAPIRequestBody.URIPath", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeContainerAPI", err.Error()) + } + + req, err := client.InvokeContainerAPIPreparer(ctx, nodeName, applicationID, serviceManifestName, codePackageName, codePackageInstanceID, containerAPIRequestBody, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeContainerAPISender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", resp, "Failure sending request") + return + } + + result, err = client.InvokeContainerAPIResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeContainerAPI", resp, "Failure responding to request") + } + + return +} + +// InvokeContainerAPIPreparer prepares the InvokeContainerAPI request. +func (client BaseClient) InvokeContainerAPIPreparer(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody ContainerAPIRequestBody, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "CodePackageInstanceId": autorest.Encode("query", codePackageInstanceID), + "CodePackageName": autorest.Encode("query", codePackageName), + "ServiceManifestName": autorest.Encode("query", serviceManifestName), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/ContainerApi", pathParameters), + autorest.WithJSON(containerAPIRequestBody), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeContainerAPISender sends the InvokeContainerAPI request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeContainerAPISender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeContainerAPIResponder handles the response to the InvokeContainerAPI request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeContainerAPIResponder(resp *http.Response) (result ContainerAPIResponse, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeInfrastructureCommand for clusters that have one or more instances of the Infrastructure Service configured, +// this API provides a way to send infrastructure-specific commands to a particular +// instance of the Infrastructure Service. +// +// Available commands and their corresponding response formats vary depending upon +// the infrastructure on which the cluster is running. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// command - the text of the command to be invoked. The content of the command is infrastructure-specific. +// serviceID - the identity of the infrastructure service. This is the full name of the infrastructure service +// without the 'fabric:' URI scheme. This parameter required only for the cluster that has more than one +// instance of infrastructure service running. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeInfrastructureCommand(ctx context.Context, command string, serviceID string, timeout *int64) (result String, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeInfrastructureCommand") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeInfrastructureCommand", err.Error()) + } + + req, err := client.InvokeInfrastructureCommandPreparer(ctx, command, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeInfrastructureCommandSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", resp, "Failure sending request") + return + } + + result, err = client.InvokeInfrastructureCommandResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureCommand", resp, "Failure responding to request") + } + + return +} + +// InvokeInfrastructureCommandPreparer prepares the InvokeInfrastructureCommand request. +func (client BaseClient) InvokeInfrastructureCommandPreparer(ctx context.Context, command string, serviceID string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Command": autorest.Encode("query", command), + } + if len(serviceID) > 0 { + queryParameters["ServiceId"] = autorest.Encode("query", serviceID) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/InvokeInfrastructureCommand"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeInfrastructureCommandSender sends the InvokeInfrastructureCommand request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeInfrastructureCommandSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeInfrastructureCommandResponder handles the response to the InvokeInfrastructureCommand request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeInfrastructureCommandResponder(resp *http.Response) (result String, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InvokeInfrastructureQuery for clusters that have one or more instances of the Infrastructure Service configured, +// this API provides a way to send infrastructure-specific queries to a particular +// instance of the Infrastructure Service. +// +// Available commands and their corresponding response formats vary depending upon +// the infrastructure on which the cluster is running. +// +// This API supports the Service Fabric platform; it is not meant to be used directly from your code. +// Parameters: +// command - the text of the command to be invoked. The content of the command is infrastructure-specific. +// serviceID - the identity of the infrastructure service. This is the full name of the infrastructure service +// without the 'fabric:' URI scheme. This parameter required only for the cluster that has more than one +// instance of infrastructure service running. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) InvokeInfrastructureQuery(ctx context.Context, command string, serviceID string, timeout *int64) (result String, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.InvokeInfrastructureQuery") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "InvokeInfrastructureQuery", err.Error()) + } + + req, err := client.InvokeInfrastructureQueryPreparer(ctx, command, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", nil, "Failure preparing request") + return + } + + resp, err := client.InvokeInfrastructureQuerySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", resp, "Failure sending request") + return + } + + result, err = client.InvokeInfrastructureQueryResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "InvokeInfrastructureQuery", resp, "Failure responding to request") + } + + return +} + +// InvokeInfrastructureQueryPreparer prepares the InvokeInfrastructureQuery request. +func (client BaseClient) InvokeInfrastructureQueryPreparer(ctx context.Context, command string, serviceID string, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "Command": autorest.Encode("query", command), + } + if len(serviceID) > 0 { + queryParameters["ServiceId"] = autorest.Encode("query", serviceID) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/InvokeInfrastructureQuery"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InvokeInfrastructureQuerySender sends the InvokeInfrastructureQuery request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) InvokeInfrastructureQuerySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// InvokeInfrastructureQueryResponder handles the response to the InvokeInfrastructureQuery request. The method always +// closes the http.Response Body. +func (client BaseClient) InvokeInfrastructureQueryResponder(resp *http.Response) (result String, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result.Value), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// PostChaosSchedule chaos will automatically schedule runs based on the Chaos Schedule. +// The Chaos Schedule will be updated if the provided version matches the version on the server. +// When updating the Chaos Schedule, the version on the server is incremented by 1. +// The version on the server will wrap back to 0 after reaching a large number. +// If Chaos is running when this call is made, the call will fail. +// Parameters: +// chaosSchedule - describes the schedule used by Chaos. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) PostChaosSchedule(ctx context.Context, chaosSchedule ChaosScheduleDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.PostChaosSchedule") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}, + {TargetValue: chaosSchedule, + Constraints: []validation.Constraint{{Target: "chaosSchedule.Version", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosSchedule.Version", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "PostChaosSchedule", err.Error()) + } + + req, err := client.PostChaosSchedulePreparer(ctx, chaosSchedule, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", nil, "Failure preparing request") + return + } + + resp, err := client.PostChaosScheduleSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", resp, "Failure sending request") + return + } + + result, err = client.PostChaosScheduleResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PostChaosSchedule", resp, "Failure responding to request") + } + + return +} + +// PostChaosSchedulePreparer prepares the PostChaosSchedule request. +func (client BaseClient) PostChaosSchedulePreparer(ctx context.Context, chaosSchedule ChaosScheduleDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/Schedule"), + autorest.WithJSON(chaosSchedule), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// PostChaosScheduleSender sends the PostChaosSchedule request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) PostChaosScheduleSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// PostChaosScheduleResponder handles the response to the PostChaosSchedule request. The method always +// closes the http.Response Body. +func (client BaseClient) PostChaosScheduleResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ProvisionApplicationType provisions a Service Fabric application type with the cluster. The provision is required +// before any new applications can be instantiated. +// The provision operation can be performed either on the application package specified by the +// relativePathInImageStore, or by using the URI of the external '.sfpkg'. +// Parameters: +// provisionApplicationTypeDescriptionBaseRequiredBodyParam - the base type of provision application type +// description which supports either image store-based provision or external store-based provision. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ProvisionApplicationType(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ProvisionApplicationType") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: provisionApplicationTypeDescriptionBaseRequiredBodyParam, + Constraints: []validation.Constraint{{Target: "provisionApplicationTypeDescriptionBaseRequiredBodyParam.Async", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ProvisionApplicationType", err.Error()) + } + + req, err := client.ProvisionApplicationTypePreparer(ctx, provisionApplicationTypeDescriptionBaseRequiredBodyParam, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", nil, "Failure preparing request") + return + } + + resp, err := client.ProvisionApplicationTypeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", resp, "Failure sending request") + return + } + + result, err = client.ProvisionApplicationTypeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionApplicationType", resp, "Failure responding to request") + } + + return +} + +// ProvisionApplicationTypePreparer prepares the ProvisionApplicationType request. +func (client BaseClient) ProvisionApplicationTypePreparer(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (*http.Request, error) { + const APIVersion = "6.2" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/ApplicationTypes/$/Provision"), + autorest.WithJSON(provisionApplicationTypeDescriptionBaseRequiredBodyParam), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ProvisionApplicationTypeSender sends the ProvisionApplicationType request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ProvisionApplicationTypeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ProvisionApplicationTypeResponder handles the response to the ProvisionApplicationType request. The method always +// closes the http.Response Body. +func (client BaseClient) ProvisionApplicationTypeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ProvisionCluster validate and provision the code or configuration packages of a Service Fabric cluster. +// Parameters: +// provisionFabricDescription - describes the parameters for provisioning a cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ProvisionCluster(ctx context.Context, provisionFabricDescription ProvisionFabricDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ProvisionCluster") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ProvisionCluster", err.Error()) + } + + req, err := client.ProvisionClusterPreparer(ctx, provisionFabricDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", nil, "Failure preparing request") + return + } + + resp, err := client.ProvisionClusterSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", resp, "Failure sending request") + return + } + + result, err = client.ProvisionClusterResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ProvisionCluster", resp, "Failure responding to request") + } + + return +} + +// ProvisionClusterPreparer prepares the ProvisionCluster request. +func (client BaseClient) ProvisionClusterPreparer(ctx context.Context, provisionFabricDescription ProvisionFabricDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Provision"), + autorest.WithJSON(provisionFabricDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ProvisionClusterSender sends the ProvisionCluster request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ProvisionClusterSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ProvisionClusterResponder handles the response to the ProvisionCluster request. The method always +// closes the http.Response Body. +func (client BaseClient) ProvisionClusterResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// PutProperty creates or updates the specified Service Fabric property under a given name. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyDescription - describes the Service Fabric property to be created. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) PutProperty(ctx context.Context, nameID string, propertyDescription PropertyDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.PutProperty") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: propertyDescription, + Constraints: []validation.Constraint{{Target: "propertyDescription.PropertyName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "propertyDescription.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "PutProperty", err.Error()) + } + + req, err := client.PutPropertyPreparer(ctx, nameID, propertyDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", nil, "Failure preparing request") + return + } + + resp, err := client.PutPropertySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", resp, "Failure sending request") + return + } + + result, err = client.PutPropertyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "PutProperty", resp, "Failure responding to request") + } + + return +} + +// PutPropertyPreparer prepares the PutProperty request. +func (client BaseClient) PutPropertyPreparer(ctx context.Context, nameID string, propertyDescription PropertyDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperty", pathParameters), + autorest.WithJSON(propertyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// PutPropertySender sends the PutProperty request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) PutPropertySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// PutPropertyResponder handles the response to the PutProperty request. The method always +// closes the http.Response Body. +func (client BaseClient) PutPropertyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverAllPartitions this operation should only be performed if it is known that the replicas that are down cannot +// be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverAllPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverAllPartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverAllPartitions", err.Error()) + } + + req, err := client.RecoverAllPartitionsPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverAllPartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverAllPartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverAllPartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverAllPartitionsPreparer prepares the RecoverAllPartitions request. +func (client BaseClient) RecoverAllPartitionsPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RecoverAllPartitions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverAllPartitionsSender sends the RecoverAllPartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverAllPartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverAllPartitionsResponder handles the response to the RecoverAllPartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverAllPartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverPartition this operation should only be performed if it is known that the replicas that are down cannot be +// recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverPartition(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverPartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverPartition", err.Error()) + } + + req, err := client.RecoverPartitionPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverPartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", resp, "Failure sending request") + return + } + + result, err = client.RecoverPartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverPartition", resp, "Failure responding to request") + } + + return +} + +// RecoverPartitionPreparer prepares the RecoverPartition request. +func (client BaseClient) RecoverPartitionPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Recover", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverPartitionSender sends the RecoverPartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverPartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverPartitionResponder handles the response to the RecoverPartition request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverPartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverServicePartitions indicates to the Service Fabric cluster that it should attempt to recover the specified +// service that is currently stuck in quorum loss. This operation should only be performed if it is known that the +// replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverServicePartitions(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverServicePartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverServicePartitions", err.Error()) + } + + req, err := client.RecoverServicePartitionsPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverServicePartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverServicePartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverServicePartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverServicePartitionsPreparer prepares the RecoverServicePartitions request. +func (client BaseClient) RecoverServicePartitionsPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/$/{serviceId}/$/GetPartitions/$/Recover", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverServicePartitionsSender sends the RecoverServicePartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverServicePartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverServicePartitionsResponder handles the response to the RecoverServicePartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverServicePartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RecoverSystemPartitions indicates to the Service Fabric cluster that it should attempt to recover the system +// services that are currently stuck in quorum loss. This operation should only be performed if it is known that the +// replicas that are down cannot be recovered. Incorrect use of this API can cause potential data loss. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RecoverSystemPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RecoverSystemPartitions") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RecoverSystemPartitions", err.Error()) + } + + req, err := client.RecoverSystemPartitionsPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", nil, "Failure preparing request") + return + } + + resp, err := client.RecoverSystemPartitionsSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", resp, "Failure sending request") + return + } + + result, err = client.RecoverSystemPartitionsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RecoverSystemPartitions", resp, "Failure responding to request") + } + + return +} + +// RecoverSystemPartitionsPreparer prepares the RecoverSystemPartitions request. +func (client BaseClient) RecoverSystemPartitionsPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RecoverSystemPartitions"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RecoverSystemPartitionsSender sends the RecoverSystemPartitions request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RecoverSystemPartitionsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RecoverSystemPartitionsResponder handles the response to the RecoverSystemPartitions request. The method always +// closes the http.Response Body. +func (client BaseClient) RecoverSystemPartitionsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveComposeDeployment deletes an existing Service Fabric compose deployment. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveComposeDeployment(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveComposeDeployment") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveComposeDeployment", err.Error()) + } + + req, err := client.RemoveComposeDeploymentPreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveComposeDeploymentSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", resp, "Failure sending request") + return + } + + result, err = client.RemoveComposeDeploymentResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveComposeDeployment", resp, "Failure responding to request") + } + + return +} + +// RemoveComposeDeploymentPreparer prepares the RemoveComposeDeployment request. +func (client BaseClient) RemoveComposeDeploymentPreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveComposeDeploymentSender sends the RemoveComposeDeployment request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveComposeDeploymentSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveComposeDeploymentResponder handles the response to the RemoveComposeDeployment request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveComposeDeploymentResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveNodeState this implies that it is not possible to recover the persisted state of that node. This generally +// happens if a hard disk has been wiped clean, or if a hard disk crashes. The node has to be down for this operation +// to be successful. This operation lets Service Fabric know that the replicas on that node no longer exist, and that +// Service Fabric should stop waiting for those replicas to come back up. Do not run this cmdlet if the state on the +// node has not been removed and the node can come back up with its state intact. +// Parameters: +// nodeName - the name of the node. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveNodeState(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveNodeState") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveNodeState", err.Error()) + } + + req, err := client.RemoveNodeStatePreparer(ctx, nodeName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveNodeStateSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", resp, "Failure sending request") + return + } + + result, err = client.RemoveNodeStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveNodeState", resp, "Failure responding to request") + } + + return +} + +// RemoveNodeStatePreparer prepares the RemoveNodeState request. +func (client BaseClient) RemoveNodeStatePreparer(ctx context.Context, nodeName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/RemoveNodeState", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveNodeStateSender sends the RemoveNodeState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveNodeStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveNodeStateResponder handles the response to the RemoveNodeState request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveNodeStateResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RemoveReplica this API simulates a Service Fabric replica failure by removing a replica from a Service Fabric +// cluster. The removal closes the replica, transitions the replica to the role None, and then removes all of the state +// information of the replica from the cluster. This API tests the replica state removal path, and simulates the report +// fault permanent path through client APIs. Warning - There are no safety checks performed when this API is used. +// Incorrect use of this API can lead to data loss for stateful services. In addition, the forceRemove flag impacts all +// other replicas hosted in the same process. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// forceRemove - remove a Service Fabric application or service forcefully without going through the graceful +// shutdown sequence. This parameter can be used to forcefully delete an application or service for which +// delete is timing out due to issues in the service code that prevents graceful close of replicas. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RemoveReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RemoveReplica") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RemoveReplica", err.Error()) + } + + req, err := client.RemoveReplicaPreparer(ctx, nodeName, partitionID, replicaID, forceRemove, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", nil, "Failure preparing request") + return + } + + resp, err := client.RemoveReplicaSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", resp, "Failure sending request") + return + } + + result, err = client.RemoveReplicaResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RemoveReplica", resp, "Failure responding to request") + } + + return +} + +// RemoveReplicaPreparer prepares the RemoveReplica request. +func (client BaseClient) RemoveReplicaPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if forceRemove != nil { + queryParameters["ForceRemove"] = autorest.Encode("query", *forceRemove) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Delete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveReplicaSender sends the RemoveReplica request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RemoveReplicaSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RemoveReplicaResponder handles the response to the RemoveReplica request. The method always +// closes the http.Response Body. +func (client BaseClient) RemoveReplicaResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportApplicationHealth reports health state of the specified Service Fabric application. The report must contain +// the information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Application, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get application health and check that the report appears +// in the HealthEvents section. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportApplicationHealth(ctx context.Context, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportApplicationHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportApplicationHealth", err.Error()) + } + + req, err := client.ReportApplicationHealthPreparer(ctx, applicationID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportApplicationHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// ReportApplicationHealthPreparer prepares the ReportApplicationHealth request. +func (client BaseClient) ReportApplicationHealthPreparer(ctx context.Context, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportApplicationHealthSender sends the ReportApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportApplicationHealthResponder handles the response to the ReportApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportApplicationHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportClusterHealth sends a health report on a Service Fabric cluster. The report must contain the information about +// the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway node, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetClusterHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportClusterHealth(ctx context.Context, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportClusterHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportClusterHealth", err.Error()) + } + + req, err := client.ReportClusterHealthPreparer(ctx, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportClusterHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportClusterHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportClusterHealth", resp, "Failure responding to request") + } + + return +} + +// ReportClusterHealthPreparer prepares the ReportClusterHealth request. +func (client BaseClient) ReportClusterHealthPreparer(ctx context.Context, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/ReportClusterHealth"), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportClusterHealthSender sends the ReportClusterHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportClusterHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportClusterHealthResponder handles the response to the ReportClusterHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportClusterHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportDeployedApplicationHealth reports health state of the application deployed on a Service Fabric node. The +// report must contain the information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get deployed application health and check that the report +// appears in the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportDeployedApplicationHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportDeployedApplicationHealth", err.Error()) + } + + req, err := client.ReportDeployedApplicationHealthPreparer(ctx, nodeName, applicationID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportDeployedApplicationHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportDeployedApplicationHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedApplicationHealth", resp, "Failure responding to request") + } + + return +} + +// ReportDeployedApplicationHealthPreparer prepares the ReportDeployedApplicationHealth request. +func (client BaseClient) ReportDeployedApplicationHealthPreparer(ctx context.Context, nodeName string, applicationID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportDeployedApplicationHealthSender sends the ReportDeployedApplicationHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportDeployedApplicationHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportDeployedApplicationHealthResponder handles the response to the ReportDeployedApplicationHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportDeployedApplicationHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportDeployedServicePackageHealth reports health state of the service package of the application deployed on a +// Service Fabric node. The report must contain the information about the source of the health report and property on +// which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, get deployed service package health and check that the +// report appears in the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// servicePackageName - the name of the service package. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportDeployedServicePackageHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportDeployedServicePackageHealth", err.Error()) + } + + req, err := client.ReportDeployedServicePackageHealthPreparer(ctx, nodeName, applicationID, servicePackageName, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportDeployedServicePackageHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportDeployedServicePackageHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportDeployedServicePackageHealth", resp, "Failure responding to request") + } + + return +} + +// ReportDeployedServicePackageHealthPreparer prepares the ReportDeployedServicePackageHealth request. +func (client BaseClient) ReportDeployedServicePackageHealthPreparer(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + "servicePackageName": servicePackageName, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetServicePackages/{servicePackageName}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportDeployedServicePackageHealthSender sends the ReportDeployedServicePackageHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportDeployedServicePackageHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportDeployedServicePackageHealthResponder handles the response to the ReportDeployedServicePackageHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportDeployedServicePackageHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportNodeHealth reports health state of the specified Service Fabric node. The report must contain the information +// about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway node, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetNodeHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// nodeName - the name of the node. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportNodeHealth(ctx context.Context, nodeName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportNodeHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportNodeHealth", err.Error()) + } + + req, err := client.ReportNodeHealthPreparer(ctx, nodeName, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportNodeHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportNodeHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportNodeHealth", resp, "Failure responding to request") + } + + return +} + +// ReportNodeHealthPreparer prepares the ReportNodeHealth request. +func (client BaseClient) ReportNodeHealthPreparer(ctx context.Context, nodeName string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportNodeHealthSender sends the ReportNodeHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportNodeHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportNodeHealthResponder handles the response to the ReportNodeHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportNodeHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportPartitionHealth reports health state of the specified Service Fabric partition. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Partition, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetPartitionHealth and check that the report appears +// in the HealthEvents section. +// Parameters: +// partitionID - the identity of the partition. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportPartitionHealth(ctx context.Context, partitionID uuid.UUID, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportPartitionHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportPartitionHealth", err.Error()) + } + + req, err := client.ReportPartitionHealthPreparer(ctx, partitionID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportPartitionHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportPartitionHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportPartitionHealth", resp, "Failure responding to request") + } + + return +} + +// ReportPartitionHealthPreparer prepares the ReportPartitionHealth request. +func (client BaseClient) ReportPartitionHealthPreparer(ctx context.Context, partitionID uuid.UUID, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportPartitionHealthSender sends the ReportPartitionHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportPartitionHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportPartitionHealthResponder handles the response to the ReportPartitionHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportPartitionHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportReplicaHealth reports health state of the specified Service Fabric replica. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Replica, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetReplicaHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// replicaHealthReportServiceKind - the kind of service replica (Stateless or Stateful) for which the health is +// being reported. Following are the possible values. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind ReplicaHealthReportServiceKind, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportReplicaHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportReplicaHealth", err.Error()) + } + + req, err := client.ReportReplicaHealthPreparer(ctx, partitionID, replicaID, replicaHealthReportServiceKind, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportReplicaHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportReplicaHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportReplicaHealth", resp, "Failure responding to request") + } + + return +} + +// ReportReplicaHealthPreparer prepares the ReportReplicaHealth request. +func (client BaseClient) ReportReplicaHealthPreparer(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind ReplicaHealthReportServiceKind, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "ReplicaHealthReportServiceKind": autorest.Encode("query", replicaHealthReportServiceKind), + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/GetReplicas/{replicaId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportReplicaHealthSender sends the ReportReplicaHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportReplicaHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportReplicaHealthResponder handles the response to the ReportReplicaHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportReplicaHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ReportServiceHealth reports health state of the specified Service Fabric service. The report must contain the +// information about the source of the health report and property on which it is reported. +// The report is sent to a Service Fabric gateway Service, which forwards to the health store. +// The report may be accepted by the gateway, but rejected by the health store after extra validation. +// For example, the health store may reject the report because of an invalid parameter, like a stale sequence number. +// To see whether the report was applied in the health store, run GetServiceHealth and check that the report appears in +// the HealthEvents section. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// healthInformation - describes the health information for the health report. This information needs to be +// present in all of the health reports sent to the health manager. +// immediate - a flag that indicates whether the report should be sent immediately. +// A health report is sent to a Service Fabric gateway Application, which forwards to the health store. +// If Immediate is set to true, the report is sent immediately from HTTP Gateway to the health store, +// regardless of the fabric client settings that the HTTP Gateway Application is using. +// This is useful for critical reports that should be sent as soon as possible. +// Depending on timing and other conditions, sending the report may still fail, for example if the HTTP Gateway +// is closed or the message doesn't reach the Gateway. +// If Immediate is set to false, the report is sent based on the health client settings from the HTTP Gateway. +// Therefore, it will be batched according to the HealthReportSendInterval configuration. +// This is the recommended setting because it allows the health client to optimize health reporting messages to +// health store as well as health report processing. +// By default, reports are not sent immediately. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ReportServiceHealth(ctx context.Context, serviceID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ReportServiceHealth") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: healthInformation, + Constraints: []validation.Constraint{{Target: "healthInformation.SourceID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "healthInformation.Property", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ReportServiceHealth", err.Error()) + } + + req, err := client.ReportServiceHealthPreparer(ctx, serviceID, healthInformation, immediate, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", nil, "Failure preparing request") + return + } + + resp, err := client.ReportServiceHealthSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", resp, "Failure sending request") + return + } + + result, err = client.ReportServiceHealthResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ReportServiceHealth", resp, "Failure responding to request") + } + + return +} + +// ReportServiceHealthPreparer prepares the ReportServiceHealth request. +func (client BaseClient) ReportServiceHealthPreparer(ctx context.Context, serviceID string, healthInformation HealthInformation, immediate *bool, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if immediate != nil { + queryParameters["Immediate"] = autorest.Encode("query", *immediate) + } else { + queryParameters["Immediate"] = autorest.Encode("query", false) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ReportHealth", pathParameters), + autorest.WithJSON(healthInformation), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ReportServiceHealthSender sends the ReportServiceHealth request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ReportServiceHealthSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ReportServiceHealthResponder handles the response to the ReportServiceHealth request. The method always +// closes the http.Response Body. +func (client BaseClient) ReportServiceHealthResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResetPartitionLoad resets the current load of a Service Fabric partition to the default load for the service. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResetPartitionLoad(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResetPartitionLoad") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResetPartitionLoad", err.Error()) + } + + req, err := client.ResetPartitionLoadPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", nil, "Failure preparing request") + return + } + + resp, err := client.ResetPartitionLoadSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", resp, "Failure sending request") + return + } + + result, err = client.ResetPartitionLoadResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResetPartitionLoad", resp, "Failure responding to request") + } + + return +} + +// ResetPartitionLoadPreparer prepares the ResetPartitionLoad request. +func (client BaseClient) ResetPartitionLoadPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ResetLoad", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResetPartitionLoadSender sends the ResetPartitionLoad request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResetPartitionLoadSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResetPartitionLoadResponder handles the response to the ResetPartitionLoad request. The method always +// closes the http.Response Body. +func (client BaseClient) ResetPartitionLoadResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResolveService resolve a Service Fabric service partition to get the endpoints of the service replicas. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionKeyType - key type for the partition. This parameter is required if the partition scheme for the +// service is Int64Range or Named. The possible values are following. +// - None (1) - Indicates that the PartitionKeyValue parameter is not specified. This is valid for the +// partitions with partitioning scheme as Singleton. This is the default value. The value is 1. +// - Int64Range (2) - Indicates that the PartitionKeyValue parameter is an int64 partition key. This is valid +// for the partitions with partitioning scheme as Int64Range. The value is 2. +// - Named (3) - Indicates that the PartitionKeyValue parameter is a name of the partition. This is valid for +// the partitions with partitioning scheme as Named. The value is 3. +// partitionKeyValue - partition key. This is required if the partition scheme for the service is Int64Range or +// Named. +// This is not the partition ID, but rather, either the integer key value, or the name of the partition ID. +// For example, if your service is using ranged partitions from 0 to 10, then they PartitionKeyValue would be +// an +// integer in that range. Query service description to see the range or name. +// previousRspVersion - the value in the Version field of the response that was received previously. This is +// required if the user knows that the result that was gotten previously is stale. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResolveService(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (result ResolvedServicePartition, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResolveService") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResolveService", err.Error()) + } + + req, err := client.ResolveServicePreparer(ctx, serviceID, partitionKeyType, partitionKeyValue, previousRspVersion, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", nil, "Failure preparing request") + return + } + + resp, err := client.ResolveServiceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", resp, "Failure sending request") + return + } + + result, err = client.ResolveServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResolveService", resp, "Failure responding to request") + } + + return +} + +// ResolveServicePreparer prepares the ResolveService request. +func (client BaseClient) ResolveServicePreparer(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if partitionKeyType != nil { + queryParameters["PartitionKeyType"] = autorest.Encode("query", *partitionKeyType) + } + if len(partitionKeyValue) > 0 { + queryParameters["PartitionKeyValue"] = partitionKeyValue + } + if len(previousRspVersion) > 0 { + queryParameters["PreviousRspVersion"] = previousRspVersion + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ResolvePartition", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResolveServiceSender sends the ResolveService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResolveServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResolveServiceResponder handles the response to the ResolveService request. The method always +// closes the http.Response Body. +func (client BaseClient) ResolveServiceResponder(resp *http.Response) (result ResolvedServicePartition, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// RestartDeployedCodePackage restarts a code package deployed on a Service Fabric node in a cluster. This aborts the +// code package process, which will restart all the user service replicas hosted in that process. +// Parameters: +// nodeName - the name of the node. +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// restartDeployedCodePackageDescription - describes the deployed code package on Service Fabric node to +// restart. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartDeployedCodePackage(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription RestartDeployedCodePackageDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartDeployedCodePackage") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restartDeployedCodePackageDescription, + Constraints: []validation.Constraint{{Target: "restartDeployedCodePackageDescription.ServiceManifestName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restartDeployedCodePackageDescription.CodePackageName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restartDeployedCodePackageDescription.CodePackageInstanceID", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartDeployedCodePackage", err.Error()) + } + + req, err := client.RestartDeployedCodePackagePreparer(ctx, nodeName, applicationID, restartDeployedCodePackageDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", nil, "Failure preparing request") + return + } + + resp, err := client.RestartDeployedCodePackageSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", resp, "Failure sending request") + return + } + + result, err = client.RestartDeployedCodePackageResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartDeployedCodePackage", resp, "Failure responding to request") + } + + return +} + +// RestartDeployedCodePackagePreparer prepares the RestartDeployedCodePackage request. +func (client BaseClient) RestartDeployedCodePackagePreparer(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription RestartDeployedCodePackageDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetApplications/{applicationId}/$/GetCodePackages/$/Restart", pathParameters), + autorest.WithJSON(restartDeployedCodePackageDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartDeployedCodePackageSender sends the RestartDeployedCodePackage request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartDeployedCodePackageSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartDeployedCodePackageResponder handles the response to the RestartDeployedCodePackage request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartDeployedCodePackageResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestartNode restarts a Service Fabric cluster node that is already started. +// Parameters: +// nodeName - the name of the node. +// restartNodeDescription - the instance of the node to be restarted and a flag indicating the need to take +// dump of the fabric process. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartNode(ctx context.Context, nodeName string, restartNodeDescription RestartNodeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartNode") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restartNodeDescription, + Constraints: []validation.Constraint{{Target: "restartNodeDescription.NodeInstanceID", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartNode", err.Error()) + } + + req, err := client.RestartNodePreparer(ctx, nodeName, restartNodeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", nil, "Failure preparing request") + return + } + + resp, err := client.RestartNodeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", resp, "Failure sending request") + return + } + + result, err = client.RestartNodeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartNode", resp, "Failure responding to request") + } + + return +} + +// RestartNodePreparer prepares the RestartNode request. +func (client BaseClient) RestartNodePreparer(ctx context.Context, nodeName string, restartNodeDescription RestartNodeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/Restart", pathParameters), + autorest.WithJSON(restartNodeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartNodeSender sends the RestartNode request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartNodeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartNodeResponder handles the response to the RestartNode request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartNodeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestartReplica restarts a service replica of a persisted service running on a node. Warning - There are no safety +// checks performed when this API is used. Incorrect use of this API can lead to availability loss for stateful +// services. +// Parameters: +// nodeName - the name of the node. +// partitionID - the identity of the partition. +// replicaID - the identifier of the replica. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestartReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestartReplica") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestartReplica", err.Error()) + } + + req, err := client.RestartReplicaPreparer(ctx, nodeName, partitionID, replicaID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", nil, "Failure preparing request") + return + } + + resp, err := client.RestartReplicaSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", resp, "Failure sending request") + return + } + + result, err = client.RestartReplicaResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestartReplica", resp, "Failure responding to request") + } + + return +} + +// RestartReplicaPreparer prepares the RestartReplica request. +func (client BaseClient) RestartReplicaPreparer(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + "partitionId": partitionID, + "replicaId": replicaID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Nodes/{nodeName}/$/GetPartitions/{partitionId}/$/GetReplicas/{replicaId}/$/Restart", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestartReplicaSender sends the RestartReplica request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestartReplicaSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestartReplicaResponder handles the response to the RestartReplica request. The method always +// closes the http.Response Body. +func (client BaseClient) RestartReplicaResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RestorePartition restores the state of a of the stateful persisted partition using the specified backup point. In +// case the partition is already being periodically backed up, then by default the backup point is looked for in the +// storage specified in backup policy. One can also override the same by specifying the backup storage details as part +// of the restore partition description in body. Once the restore is initiated, its progress can be tracked using the +// GetRestoreProgress operation. +// In case, the operation times out, specify a greater restore timeout value in the query parameter. +// Parameters: +// partitionID - the identity of the partition. +// restorePartitionDescription - describes the parameters to restore the partition. +// restoreTimeout - specifies the maximum amount of time to wait, in minutes, for the restore operation to +// complete. Post that, the operation returns back with timeout error. However, in certain corner cases it +// could be that the restore operation goes through even though it completes with timeout. In case of timeout +// error, its recommended to invoke this operation again with a greater timeout value. the default value for +// the same is 10 minutes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RestorePartition(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RestorePartition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: restorePartitionDescription, + Constraints: []validation.Constraint{{Target: "restorePartitionDescription.BackupID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "restorePartitionDescription.BackupLocation", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RestorePartition", err.Error()) + } + + req, err := client.RestorePartitionPreparer(ctx, partitionID, restorePartitionDescription, restoreTimeout, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", nil, "Failure preparing request") + return + } + + resp, err := client.RestorePartitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", resp, "Failure sending request") + return + } + + result, err = client.RestorePartitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RestorePartition", resp, "Failure responding to request") + } + + return +} + +// RestorePartitionPreparer prepares the RestorePartition request. +func (client BaseClient) RestorePartitionPreparer(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if restoreTimeout != nil { + queryParameters["RestoreTimeout"] = autorest.Encode("query", *restoreTimeout) + } else { + queryParameters["RestoreTimeout"] = autorest.Encode("query", 10) + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/Restore", pathParameters), + autorest.WithJSON(restorePartitionDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RestorePartitionSender sends the RestorePartition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RestorePartitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RestorePartitionResponder handles the response to the RestorePartition request. The method always +// closes the http.Response Body. +func (client BaseClient) RestorePartitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeApplicationBackup the previously suspended Service Fabric application resumes taking periodic backup as per +// the backup policy currently configured for the same. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeApplicationBackup", err.Error()) + } + + req, err := client.ResumeApplicationBackupPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumeApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// ResumeApplicationBackupPreparer prepares the ResumeApplicationBackup request. +func (client BaseClient) ResumeApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeApplicationBackupSender sends the ResumeApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeApplicationBackupResponder handles the response to the ResumeApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeApplicationUpgrade resumes an unmonitored manual Service Fabric application upgrade. Service Fabric upgrades +// one upgrade domain at a time. For unmonitored manual upgrades, after Service Fabric finishes an upgrade domain, it +// waits for you to call this API before proceeding to the next upgrade domain. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// resumeApplicationUpgradeDescription - describes the parameters for resuming an application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeApplicationUpgrade(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription ResumeApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resumeApplicationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "resumeApplicationUpgradeDescription.UpgradeDomainName", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeApplicationUpgrade", err.Error()) + } + + req, err := client.ResumeApplicationUpgradePreparer(ctx, applicationID, resumeApplicationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.ResumeApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// ResumeApplicationUpgradePreparer prepares the ResumeApplicationUpgrade request. +func (client BaseClient) ResumeApplicationUpgradePreparer(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription ResumeApplicationUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/MoveToNextUpgradeDomain", pathParameters), + autorest.WithJSON(resumeApplicationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeApplicationUpgradeSender sends the ResumeApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeApplicationUpgradeResponder handles the response to the ResumeApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeClusterUpgrade make the cluster code or configuration upgrade move on to the next upgrade domain if +// appropriate. +// Parameters: +// resumeClusterUpgradeDescription - describes the parameters for resuming a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeClusterUpgrade(ctx context.Context, resumeClusterUpgradeDescription ResumeClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: resumeClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "resumeClusterUpgradeDescription.UpgradeDomain", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeClusterUpgrade", err.Error()) + } + + req, err := client.ResumeClusterUpgradePreparer(ctx, resumeClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.ResumeClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// ResumeClusterUpgradePreparer prepares the ResumeClusterUpgrade request. +func (client BaseClient) ResumeClusterUpgradePreparer(ctx context.Context, resumeClusterUpgradeDescription ResumeClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/MoveToNextUpgradeDomain"), + autorest.WithJSON(resumeClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeClusterUpgradeSender sends the ResumeClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeClusterUpgradeResponder handles the response to the ResumeClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumePartitionBackup the previously suspended partition resumes taking periodic backup as per the backup policy +// currently configured for the same. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumePartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumePartitionBackup", err.Error()) + } + + req, err := client.ResumePartitionBackupPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumePartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumePartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumePartitionBackup", resp, "Failure responding to request") + } + + return +} + +// ResumePartitionBackupPreparer prepares the ResumePartitionBackup request. +func (client BaseClient) ResumePartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumePartitionBackupSender sends the ResumePartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumePartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumePartitionBackupResponder handles the response to the ResumePartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumePartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ResumeServiceBackup the previously suspended Service Fabric service resumes taking periodic backup as per the backup +// policy currently configured for the same. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) ResumeServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.ResumeServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "ResumeServiceBackup", err.Error()) + } + + req, err := client.ResumeServiceBackupPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.ResumeServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.ResumeServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "ResumeServiceBackup", resp, "Failure responding to request") + } + + return +} + +// ResumeServiceBackupPreparer prepares the ResumeServiceBackup request. +func (client BaseClient) ResumeServiceBackupPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/ResumeBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResumeServiceBackupSender sends the ResumeServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) ResumeServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ResumeServiceBackupResponder handles the response to the ResumeServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) ResumeServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// RollbackApplicationUpgrade starts rolling back the current application upgrade to the previous version. This API can +// only be used to roll back the current in-progress upgrade that is rolling forward to new version. If the application +// is not currently being upgraded use StartApplicationUpgrade API to upgrade it to desired version, including rolling +// back to a previous version. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RollbackApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RollbackApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RollbackApplicationUpgrade", err.Error()) + } + + req, err := client.RollbackApplicationUpgradePreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.RollbackApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.RollbackApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// RollbackApplicationUpgradePreparer prepares the RollbackApplicationUpgrade request. +func (client BaseClient) RollbackApplicationUpgradePreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/RollbackUpgrade", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RollbackApplicationUpgradeSender sends the RollbackApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RollbackApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RollbackApplicationUpgradeResponder handles the response to the RollbackApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) RollbackApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// RollbackClusterUpgrade roll back the code or configuration upgrade of a Service Fabric cluster. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) RollbackClusterUpgrade(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.RollbackClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "RollbackClusterUpgrade", err.Error()) + } + + req, err := client.RollbackClusterUpgradePreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.RollbackClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.RollbackClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "RollbackClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// RollbackClusterUpgradePreparer prepares the RollbackClusterUpgrade request. +func (client BaseClient) RollbackClusterUpgradePreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/RollbackUpgrade"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RollbackClusterUpgradeSender sends the RollbackClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) RollbackClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// RollbackClusterUpgradeResponder handles the response to the RollbackClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) RollbackClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SetUpgradeOrchestrationServiceState update the service state of Service Fabric Upgrade Orchestration Service. This +// API is internally used for support purposes. +// Parameters: +// upgradeOrchestrationServiceState - service state of Service Fabric Upgrade Orchestration Service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SetUpgradeOrchestrationServiceState(ctx context.Context, upgradeOrchestrationServiceState UpgradeOrchestrationServiceState, timeout *int64) (result UpgradeOrchestrationServiceStateSummary, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SetUpgradeOrchestrationServiceState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", err.Error()) + } + + req, err := client.SetUpgradeOrchestrationServiceStatePreparer(ctx, upgradeOrchestrationServiceState, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", nil, "Failure preparing request") + return + } + + resp, err := client.SetUpgradeOrchestrationServiceStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", resp, "Failure sending request") + return + } + + result, err = client.SetUpgradeOrchestrationServiceStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SetUpgradeOrchestrationServiceState", resp, "Failure responding to request") + } + + return +} + +// SetUpgradeOrchestrationServiceStatePreparer prepares the SetUpgradeOrchestrationServiceState request. +func (client BaseClient) SetUpgradeOrchestrationServiceStatePreparer(ctx context.Context, upgradeOrchestrationServiceState UpgradeOrchestrationServiceState, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/SetUpgradeOrchestrationServiceState"), + autorest.WithJSON(upgradeOrchestrationServiceState), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SetUpgradeOrchestrationServiceStateSender sends the SetUpgradeOrchestrationServiceState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SetUpgradeOrchestrationServiceStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SetUpgradeOrchestrationServiceStateResponder handles the response to the SetUpgradeOrchestrationServiceState request. The method always +// closes the http.Response Body. +func (client BaseClient) SetUpgradeOrchestrationServiceStateResponder(resp *http.Response) (result UpgradeOrchestrationServiceStateSummary, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// StartApplicationUpgrade validates the supplied application upgrade parameters and starts upgrading the application +// if the parameters are valid. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// applicationUpgradeDescription - parameters for an application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeDescription ApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "applicationUpgradeDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationUpgradeDescription.TargetApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationUpgradeDescription.Parameters", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartApplicationUpgrade", err.Error()) + } + + req, err := client.StartApplicationUpgradePreparer(ctx, applicationID, applicationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartApplicationUpgradePreparer prepares the StartApplicationUpgrade request. +func (client BaseClient) StartApplicationUpgradePreparer(ctx context.Context, applicationID string, applicationUpgradeDescription ApplicationUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/Upgrade", pathParameters), + autorest.WithJSON(applicationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartApplicationUpgradeSender sends the StartApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartApplicationUpgradeResponder handles the response to the StartApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartChaos if Chaos is not already running in the cluster, it starts Chaos with the passed in Chaos parameters. +// If Chaos is already running when this call is made, the call fails with the error code +// FABRIC_E_CHAOS_ALREADY_RUNNING. +// Refer to the article [Induce controlled Chaos in Service Fabric +// clusters](https://docs.microsoft.com/azure/service-fabric/service-fabric-controlled-chaos) for more details. +// Parameters: +// chaosParameters - describes all the parameters to configure a Chaos run. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartChaos(ctx context.Context, chaosParameters ChaosParameters, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartChaos") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: chaosParameters, + Constraints: []validation.Constraint{{Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.MaxClusterStabilizationTimeoutInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.MaxConcurrentFaults", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.MaxConcurrentFaults", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.MaxConcurrentFaults", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.WaitTimeBetweenFaultsInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "chaosParameters.WaitTimeBetweenIterationsInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartChaos", err.Error()) + } + + req, err := client.StartChaosPreparer(ctx, chaosParameters, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", nil, "Failure preparing request") + return + } + + resp, err := client.StartChaosSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", resp, "Failure sending request") + return + } + + result, err = client.StartChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartChaos", resp, "Failure responding to request") + } + + return +} + +// StartChaosPreparer prepares the StartChaos request. +func (client BaseClient) StartChaosPreparer(ctx context.Context, chaosParameters ChaosParameters, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/$/Start"), + autorest.WithJSON(chaosParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartChaosSender sends the StartChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartChaosResponder handles the response to the StartChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) StartChaosResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartClusterConfigurationUpgrade validate the supplied configuration upgrade parameters and start upgrading the +// cluster configuration if the parameters are valid. +// Parameters: +// clusterConfigurationUpgradeDescription - parameters for a standalone cluster configuration upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartClusterConfigurationUpgrade(ctx context.Context, clusterConfigurationUpgradeDescription ClusterConfigurationUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartClusterConfigurationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: clusterConfigurationUpgradeDescription, + Constraints: []validation.Constraint{{Target: "clusterConfigurationUpgradeDescription.ClusterConfig", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartClusterConfigurationUpgrade", err.Error()) + } + + req, err := client.StartClusterConfigurationUpgradePreparer(ctx, clusterConfigurationUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartClusterConfigurationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartClusterConfigurationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterConfigurationUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartClusterConfigurationUpgradePreparer prepares the StartClusterConfigurationUpgrade request. +func (client BaseClient) StartClusterConfigurationUpgradePreparer(ctx context.Context, clusterConfigurationUpgradeDescription ClusterConfigurationUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/StartClusterConfigurationUpgrade"), + autorest.WithJSON(clusterConfigurationUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartClusterConfigurationUpgradeSender sends the StartClusterConfigurationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartClusterConfigurationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartClusterConfigurationUpgradeResponder handles the response to the StartClusterConfigurationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartClusterConfigurationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartClusterUpgrade validate the supplied upgrade parameters and start upgrading the code or configuration version +// of a Service Fabric cluster if the parameters are valid. +// Parameters: +// startClusterUpgradeDescription - describes the parameters for starting a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartClusterUpgrade(ctx context.Context, startClusterUpgradeDescription StartClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: startClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "startClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartClusterUpgrade", err.Error()) + } + + req, err := client.StartClusterUpgradePreparer(ctx, startClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartClusterUpgradePreparer prepares the StartClusterUpgrade request. +func (client BaseClient) StartClusterUpgradePreparer(ctx context.Context, startClusterUpgradeDescription StartClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Upgrade"), + autorest.WithJSON(startClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartClusterUpgradeSender sends the StartClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartClusterUpgradeResponder handles the response to the StartClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartComposeDeploymentUpgrade validates the supplied upgrade parameters and starts upgrading the deployment if the +// parameters are valid. +// Parameters: +// deploymentName - the identity of the deployment. +// composeDeploymentUpgradeDescription - parameters for upgrading compose deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartComposeDeploymentUpgrade(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription ComposeDeploymentUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartComposeDeploymentUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: composeDeploymentUpgradeDescription, + Constraints: []validation.Constraint{{Target: "composeDeploymentUpgradeDescription.DeploymentName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "composeDeploymentUpgradeDescription.ComposeFileContent", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartComposeDeploymentUpgrade", err.Error()) + } + + req, err := client.StartComposeDeploymentUpgradePreparer(ctx, deploymentName, composeDeploymentUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartComposeDeploymentUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartComposeDeploymentUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartComposeDeploymentUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartComposeDeploymentUpgradePreparer prepares the StartComposeDeploymentUpgrade request. +func (client BaseClient) StartComposeDeploymentUpgradePreparer(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription ComposeDeploymentUpgradeDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.0-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/Upgrade", pathParameters), + autorest.WithJSON(composeDeploymentUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartComposeDeploymentUpgradeSender sends the StartComposeDeploymentUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartComposeDeploymentUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartComposeDeploymentUpgradeResponder handles the response to the StartComposeDeploymentUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartComposeDeploymentUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartDataLoss this API will induce data loss for the specified partition. It will trigger a call to the OnDataLoss +// API of the partition. +// Actual data loss will depend on the specified DataLossMode. +// +// - PartialDataLoss - Only a quorum of replicas are removed and OnDataLoss is triggered for the partition but actual +// data loss depends on the presence of in-flight replication. +// - FullDataLoss - All replicas are removed hence all data is lost and OnDataLoss is triggered. +// +// This API should only be called with a stateful service as the target. +// +// Calling this API with a system service as the target is not advised. +// +// Note: Once this API has been called, it cannot be reversed. Calling CancelOperation will only stop execution and +// clean up internal system state. +// It will not restore data if the command has progressed far enough to cause data loss. +// +// Call the GetDataLossProgress API with the same OperationId to return information on the operation started with this +// API. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// dataLossMode - this enum is passed to the StartDataLoss API to indicate what type of data loss to induce. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartDataLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode DataLossMode, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartDataLoss") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartDataLoss", err.Error()) + } + + req, err := client.StartDataLossPreparer(ctx, serviceID, partitionID, operationID, dataLossMode, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", nil, "Failure preparing request") + return + } + + resp, err := client.StartDataLossSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", resp, "Failure sending request") + return + } + + result, err = client.StartDataLossResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartDataLoss", resp, "Failure responding to request") + } + + return +} + +// StartDataLossPreparer prepares the StartDataLoss request. +func (client BaseClient) StartDataLossPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode DataLossMode, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "DataLossMode": autorest.Encode("query", dataLossMode), + "OperationId": autorest.Encode("query", operationID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartDataLoss", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartDataLossSender sends the StartDataLoss request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartDataLossSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartDataLossResponder handles the response to the StartDataLoss request. The method always +// closes the http.Response Body. +func (client BaseClient) StartDataLossResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartNodeTransition starts or stops a cluster node. A cluster node is a process, not the OS instance itself. To +// start a node, pass in "Start" for the NodeTransitionType parameter. +// To stop a node, pass in "Stop" for the NodeTransitionType parameter. This API starts the operation - when the API +// returns the node may not have finished transitioning yet. +// Call GetNodeTransitionProgress with the same OperationId to get the progress of the operation. +// Parameters: +// nodeName - the name of the node. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// nodeTransitionType - indicates the type of transition to perform. NodeTransitionType.Start will start a +// stopped node. NodeTransitionType.Stop will stop a node that is up. +// nodeInstanceID - the node instance ID of the target node. This can be determined through GetNodeInfo API. +// stopDurationInSeconds - the duration, in seconds, to keep the node stopped. The minimum value is 600, the +// maximum is 14400. After this time expires, the node will automatically come back up. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartNodeTransition(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartNodeTransition") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: stopDurationInSeconds, + Constraints: []validation.Constraint{{Target: "stopDurationInSeconds", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartNodeTransition", err.Error()) + } + + req, err := client.StartNodeTransitionPreparer(ctx, nodeName, operationID, nodeTransitionType, nodeInstanceID, stopDurationInSeconds, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", nil, "Failure preparing request") + return + } + + resp, err := client.StartNodeTransitionSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", resp, "Failure sending request") + return + } + + result, err = client.StartNodeTransitionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartNodeTransition", resp, "Failure responding to request") + } + + return +} + +// StartNodeTransitionPreparer prepares the StartNodeTransition request. +func (client BaseClient) StartNodeTransitionPreparer(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nodeName": autorest.Encode("path", nodeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "NodeInstanceId": autorest.Encode("query", nodeInstanceID), + "NodeTransitionType": autorest.Encode("query", nodeTransitionType), + "OperationId": autorest.Encode("query", operationID), + "StopDurationInSeconds": autorest.Encode("query", stopDurationInSeconds), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Nodes/{nodeName}/$/StartTransition/", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartNodeTransitionSender sends the StartNodeTransition request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartNodeTransitionSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartNodeTransitionResponder handles the response to the StartNodeTransition request. The method always +// closes the http.Response Body. +func (client BaseClient) StartNodeTransitionResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartPartitionRestart this API is useful for testing failover. +// +// If used to target a stateless service partition, RestartPartitionMode must be AllReplicasOrInstances. +// +// Call the GetPartitionRestartProgress API using the same OperationId to get the progress. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// restartPartitionMode - describe which partitions to restart. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartPartitionRestart(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode RestartPartitionMode, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartPartitionRestart") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartPartitionRestart", err.Error()) + } + + req, err := client.StartPartitionRestartPreparer(ctx, serviceID, partitionID, operationID, restartPartitionMode, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", nil, "Failure preparing request") + return + } + + resp, err := client.StartPartitionRestartSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", resp, "Failure sending request") + return + } + + result, err = client.StartPartitionRestartResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartPartitionRestart", resp, "Failure responding to request") + } + + return +} + +// StartPartitionRestartPreparer prepares the StartPartitionRestart request. +func (client BaseClient) StartPartitionRestartPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode RestartPartitionMode, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + "RestartPartitionMode": autorest.Encode("query", restartPartitionMode), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartRestart", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartPartitionRestartSender sends the StartPartitionRestart request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartPartitionRestartSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartPartitionRestartResponder handles the response to the StartPartitionRestart request. The method always +// closes the http.Response Body. +func (client BaseClient) StartPartitionRestartResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartQuorumLoss this API is useful for a temporary quorum loss situation on your service. +// +// Call the GetQuorumLossProgress API with the same OperationId to return information on the operation started with +// this API. +// +// This can only be called on stateful persisted (HasPersistedState==true) services. Do not use this API on stateless +// services or stateful in-memory only services. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// partitionID - the identity of the partition. +// operationID - a GUID that identifies a call of this API. This is passed into the corresponding GetProgress +// API +// quorumLossMode - this enum is passed to the StartQuorumLoss API to indicate what type of quorum loss to +// induce. +// quorumLossDuration - the amount of time for which the partition will be kept in quorum loss. This must be +// specified in seconds. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartQuorumLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode QuorumLossMode, quorumLossDuration int32, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartQuorumLoss") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartQuorumLoss", err.Error()) + } + + req, err := client.StartQuorumLossPreparer(ctx, serviceID, partitionID, operationID, quorumLossMode, quorumLossDuration, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", nil, "Failure preparing request") + return + } + + resp, err := client.StartQuorumLossSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", resp, "Failure sending request") + return + } + + result, err = client.StartQuorumLossResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartQuorumLoss", resp, "Failure responding to request") + } + + return +} + +// StartQuorumLossPreparer prepares the StartQuorumLoss request. +func (client BaseClient) StartQuorumLossPreparer(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode QuorumLossMode, quorumLossDuration int32, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "OperationId": autorest.Encode("query", operationID), + "QuorumLossDuration": autorest.Encode("query", quorumLossDuration), + "QuorumLossMode": autorest.Encode("query", quorumLossMode), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Faults/Services/{serviceId}/$/GetPartitions/{partitionId}/$/StartQuorumLoss", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartQuorumLossSender sends the StartQuorumLoss request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartQuorumLossSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartQuorumLossResponder handles the response to the StartQuorumLoss request. The method always +// closes the http.Response Body. +func (client BaseClient) StartQuorumLossResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// StartRollbackComposeDeploymentUpgrade rollback a service fabric compose deployment upgrade. +// Parameters: +// deploymentName - the identity of the deployment. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StartRollbackComposeDeploymentUpgrade(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StartRollbackComposeDeploymentUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StartRollbackComposeDeploymentUpgrade", err.Error()) + } + + req, err := client.StartRollbackComposeDeploymentUpgradePreparer(ctx, deploymentName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartRollbackComposeDeploymentUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.StartRollbackComposeDeploymentUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartRollbackComposeDeploymentUpgrade", resp, "Failure sending request") + return + } + + result, err = client.StartRollbackComposeDeploymentUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StartRollbackComposeDeploymentUpgrade", resp, "Failure responding to request") + } + + return +} + +// StartRollbackComposeDeploymentUpgradePreparer prepares the StartRollbackComposeDeploymentUpgrade request. +func (client BaseClient) StartRollbackComposeDeploymentUpgradePreparer(ctx context.Context, deploymentName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deploymentName": deploymentName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ComposeDeployments/{deploymentName}/$/RollbackUpgrade", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StartRollbackComposeDeploymentUpgradeSender sends the StartRollbackComposeDeploymentUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StartRollbackComposeDeploymentUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StartRollbackComposeDeploymentUpgradeResponder handles the response to the StartRollbackComposeDeploymentUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) StartRollbackComposeDeploymentUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// StopChaos stops Chaos from executing new faults. In-flight faults will continue to execute until they are complete. +// The current Chaos Schedule is put into a stopped state. +// Once a schedule is stopped, it will stay in the stopped state and not be used to Chaos Schedule new runs of Chaos. A +// new Chaos Schedule must be set in order to resume scheduling. +// Parameters: +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) StopChaos(ctx context.Context, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.StopChaos") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "StopChaos", err.Error()) + } + + req, err := client.StopChaosPreparer(ctx, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", nil, "Failure preparing request") + return + } + + resp, err := client.StopChaosSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", resp, "Failure sending request") + return + } + + result, err = client.StopChaosResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "StopChaos", resp, "Failure responding to request") + } + + return +} + +// StopChaosPreparer prepares the StopChaos request. +func (client BaseClient) StopChaosPreparer(ctx context.Context, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Tools/Chaos/$/Stop"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// StopChaosSender sends the StopChaos request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) StopChaosSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// StopChaosResponder handles the response to the StopChaos request. The method always +// closes the http.Response Body. +func (client BaseClient) StopChaosResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// SubmitPropertyBatch submits a batch of property operations. Either all or none of the operations will be committed. +// Parameters: +// nameID - the Service Fabric name, without the 'fabric:' URI scheme. +// propertyBatchDescriptionList - describes the property batch operations to be submitted. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SubmitPropertyBatch(ctx context.Context, nameID string, propertyBatchDescriptionList PropertyBatchDescriptionList, timeout *int64) (result PropertyBatchInfoModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SubmitPropertyBatch") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SubmitPropertyBatch", err.Error()) + } + + req, err := client.SubmitPropertyBatchPreparer(ctx, nameID, propertyBatchDescriptionList, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", nil, "Failure preparing request") + return + } + + resp, err := client.SubmitPropertyBatchSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", resp, "Failure sending request") + return + } + + result, err = client.SubmitPropertyBatchResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SubmitPropertyBatch", resp, "Failure responding to request") + } + + return +} + +// SubmitPropertyBatchPreparer prepares the SubmitPropertyBatch request. +func (client BaseClient) SubmitPropertyBatchPreparer(ctx context.Context, nameID string, propertyBatchDescriptionList PropertyBatchDescriptionList, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "nameId": nameID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Names/{nameId}/$/GetProperties/$/SubmitBatch", pathParameters), + autorest.WithJSON(propertyBatchDescriptionList), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SubmitPropertyBatchSender sends the SubmitPropertyBatch request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SubmitPropertyBatchSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SubmitPropertyBatchResponder handles the response to the SubmitPropertyBatch request. The method always +// closes the http.Response Body. +func (client BaseClient) SubmitPropertyBatchResponder(resp *http.Response) (result PropertyBatchInfoModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusConflict), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// SuspendApplicationBackup the application which is configured to take periodic backups, is suspended for taking +// further backups till it is resumed again. This operation applies to the entire application's hierarchy. It means all +// the services and partitions under this application are now suspended for backup. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendApplicationBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendApplicationBackup", err.Error()) + } + + req, err := client.SuspendApplicationBackupPreparer(ctx, applicationID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendApplicationBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendApplicationBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendApplicationBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendApplicationBackupPreparer prepares the SuspendApplicationBackup request. +func (client BaseClient) SuspendApplicationBackupPreparer(ctx context.Context, applicationID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendApplicationBackupSender sends the SuspendApplicationBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendApplicationBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendApplicationBackupResponder handles the response to the SuspendApplicationBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendApplicationBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SuspendPartitionBackup the partition which is configured to take periodic backups, is suspended for taking further +// backups till it is resumed again. +// Parameters: +// partitionID - the identity of the partition. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendPartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendPartitionBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendPartitionBackup", err.Error()) + } + + req, err := client.SuspendPartitionBackupPreparer(ctx, partitionID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendPartitionBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendPartitionBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendPartitionBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendPartitionBackupPreparer prepares the SuspendPartitionBackup request. +func (client BaseClient) SuspendPartitionBackupPreparer(ctx context.Context, partitionID uuid.UUID, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "partitionId": partitionID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Partitions/{partitionId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendPartitionBackupSender sends the SuspendPartitionBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendPartitionBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendPartitionBackupResponder handles the response to the SuspendPartitionBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendPartitionBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// SuspendServiceBackup the service which is configured to take periodic backups, is suspended for taking further +// backups till it is resumed again. This operation applies to the entire service's hierarchy. It means all the +// partitions under this service are now suspended for backup. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) SuspendServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.SuspendServiceBackup") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "SuspendServiceBackup", err.Error()) + } + + req, err := client.SuspendServiceBackupPreparer(ctx, serviceID, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", nil, "Failure preparing request") + return + } + + resp, err := client.SuspendServiceBackupSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", resp, "Failure sending request") + return + } + + result, err = client.SuspendServiceBackupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "SuspendServiceBackup", resp, "Failure responding to request") + } + + return +} + +// SuspendServiceBackupPreparer prepares the SuspendServiceBackup request. +func (client BaseClient) SuspendServiceBackupPreparer(ctx context.Context, serviceID string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/SuspendBackup", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// SuspendServiceBackupSender sends the SuspendServiceBackup request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) SuspendServiceBackupSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// SuspendServiceBackupResponder handles the response to the SuspendServiceBackup request. The method always +// closes the http.Response Body. +func (client BaseClient) SuspendServiceBackupResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// UnprovisionApplicationType this operation can only be performed if all application instances of the application type +// have been deleted. Once the application type is unregistered, no new application instances can be created for this +// particular application type. +// Parameters: +// applicationTypeName - the name of the application type. +// unprovisionApplicationTypeDescriptionInfo - the relative path for the application package in the image store +// specified during the prior copy operation. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UnprovisionApplicationType(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UnprovisionApplicationType") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: unprovisionApplicationTypeDescriptionInfo, + Constraints: []validation.Constraint{{Target: "unprovisionApplicationTypeDescriptionInfo.ApplicationTypeVersion", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UnprovisionApplicationType", err.Error()) + } + + req, err := client.UnprovisionApplicationTypePreparer(ctx, applicationTypeName, unprovisionApplicationTypeDescriptionInfo, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", nil, "Failure preparing request") + return + } + + resp, err := client.UnprovisionApplicationTypeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", resp, "Failure sending request") + return + } + + result, err = client.UnprovisionApplicationTypeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionApplicationType", resp, "Failure responding to request") + } + + return +} + +// UnprovisionApplicationTypePreparer prepares the UnprovisionApplicationType request. +func (client BaseClient) UnprovisionApplicationTypePreparer(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationTypeName": autorest.Encode("path", applicationTypeName), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ApplicationTypes/{applicationTypeName}/$/Unprovision", pathParameters), + autorest.WithJSON(unprovisionApplicationTypeDescriptionInfo), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UnprovisionApplicationTypeSender sends the UnprovisionApplicationType request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UnprovisionApplicationTypeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UnprovisionApplicationTypeResponder handles the response to the UnprovisionApplicationType request. The method always +// closes the http.Response Body. +func (client BaseClient) UnprovisionApplicationTypeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// UnprovisionCluster it is supported to unprovision code and configuration separately. +// Parameters: +// unprovisionFabricDescription - describes the parameters for unprovisioning a cluster. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UnprovisionCluster(ctx context.Context, unprovisionFabricDescription UnprovisionFabricDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UnprovisionCluster") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UnprovisionCluster", err.Error()) + } + + req, err := client.UnprovisionClusterPreparer(ctx, unprovisionFabricDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", nil, "Failure preparing request") + return + } + + resp, err := client.UnprovisionClusterSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", resp, "Failure sending request") + return + } + + result, err = client.UnprovisionClusterResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UnprovisionCluster", resp, "Failure responding to request") + } + + return +} + +// UnprovisionClusterPreparer prepares the UnprovisionCluster request. +func (client BaseClient) UnprovisionClusterPreparer(ctx context.Context, unprovisionFabricDescription UnprovisionFabricDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/Unprovision"), + autorest.WithJSON(unprovisionFabricDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UnprovisionClusterSender sends the UnprovisionCluster request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UnprovisionClusterSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UnprovisionClusterResponder handles the response to the UnprovisionCluster request. The method always +// closes the http.Response Body. +func (client BaseClient) UnprovisionClusterResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateApplicationUpgrade updates the parameters of an ongoing application upgrade from the ones specified at the +// time of starting the application upgrade. This may be required to mitigate stuck application upgrades due to +// incorrect parameters or issues in the application to make progress. +// Parameters: +// applicationID - the identity of the application. This is typically the full name of the application without +// the 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the application name is "fabric:/myapp/app1", the application identity would be "myapp~app1" +// in 6.0+ and "myapp/app1" in previous versions. +// applicationUpgradeUpdateDescription - parameters for updating an existing application upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription ApplicationUpgradeUpdateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateApplicationUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationUpgradeUpdateDescription, + Constraints: []validation.Constraint{{Target: "applicationUpgradeUpdateDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateApplicationUpgrade", err.Error()) + } + + req, err := client.UpdateApplicationUpgradePreparer(ctx, applicationID, applicationUpgradeUpdateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateApplicationUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", resp, "Failure sending request") + return + } + + result, err = client.UpdateApplicationUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateApplicationUpgrade", resp, "Failure responding to request") + } + + return +} + +// UpdateApplicationUpgradePreparer prepares the UpdateApplicationUpgrade request. +func (client BaseClient) UpdateApplicationUpgradePreparer(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription ApplicationUpgradeUpdateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationId": applicationID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Applications/{applicationId}/$/UpdateUpgrade", pathParameters), + autorest.WithJSON(applicationUpgradeUpdateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateApplicationUpgradeSender sends the UpdateApplicationUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateApplicationUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateApplicationUpgradeResponder handles the response to the UpdateApplicationUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateApplicationUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateBackupPolicy updates the backup policy identified by {backupPolicyName} +// Parameters: +// backupPolicyDescription - describes the backup policy. +// backupPolicyName - the name of the backup policy. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateBackupPolicy(ctx context.Context, backupPolicyDescription BackupPolicyDescription, backupPolicyName string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateBackupPolicy") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: backupPolicyDescription, + Constraints: []validation.Constraint{{Target: "backupPolicyDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.AutoRestoreOnDataLoss", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMaximum, Rule: int64(255), Chain: nil}, + {Target: "backupPolicyDescription.MaxIncrementalBackups", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "backupPolicyDescription.Schedule", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "backupPolicyDescription.Storage", Name: validation.Null, Rule: true, Chain: nil}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateBackupPolicy", err.Error()) + } + + req, err := client.UpdateBackupPolicyPreparer(ctx, backupPolicyDescription, backupPolicyName, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateBackupPolicySender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", resp, "Failure sending request") + return + } + + result, err = client.UpdateBackupPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateBackupPolicy", resp, "Failure responding to request") + } + + return +} + +// UpdateBackupPolicyPreparer prepares the UpdateBackupPolicy request. +func (client BaseClient) UpdateBackupPolicyPreparer(ctx context.Context, backupPolicyDescription BackupPolicyDescription, backupPolicyName string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "backupPolicyName": autorest.Encode("path", backupPolicyName), + } + + const APIVersion = "6.4" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/BackupRestore/BackupPolicies/{backupPolicyName}/$/Update", pathParameters), + autorest.WithJSON(backupPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateBackupPolicySender sends the UpdateBackupPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateBackupPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateBackupPolicyResponder handles the response to the UpdateBackupPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateBackupPolicyResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateClusterUpgrade update the upgrade parameters used during a Service Fabric cluster upgrade. +// Parameters: +// updateClusterUpgradeDescription - parameters for updating a cluster upgrade. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateClusterUpgrade(ctx context.Context, updateClusterUpgradeDescription UpdateClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateClusterUpgrade") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: updateClusterUpgradeDescription, + Constraints: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMaximum, Rule: int64(100), Chain: nil}, + {Target: "updateClusterUpgradeDescription.ClusterUpgradeHealthPolicy.MaxPercentUpgradeDomainDeltaUnhealthyNodes", Name: validation.InclusiveMinimum, Rule: 0, Chain: nil}, + }}, + }}}}, + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateClusterUpgrade", err.Error()) + } + + req, err := client.UpdateClusterUpgradePreparer(ctx, updateClusterUpgradeDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateClusterUpgradeSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", resp, "Failure sending request") + return + } + + result, err = client.UpdateClusterUpgradeResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateClusterUpgrade", resp, "Failure responding to request") + } + + return +} + +// UpdateClusterUpgradePreparer prepares the UpdateClusterUpgrade request. +func (client BaseClient) UpdateClusterUpgradePreparer(ctx context.Context, updateClusterUpgradeDescription UpdateClusterUpgradeDescription, timeout *int64) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateUpgrade"), + autorest.WithJSON(updateClusterUpgradeDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateClusterUpgradeSender sends the UpdateClusterUpgrade request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateClusterUpgradeSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateClusterUpgradeResponder handles the response to the UpdateClusterUpgrade request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateClusterUpgradeResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UpdateRepairExecutionState this API supports the Service Fabric platform; it is not meant to be used directly from +// your code. +// Parameters: +// repairTask - describes the repair task to be created or updated. +func (client BaseClient) UpdateRepairExecutionState(ctx context.Context, repairTask RepairTask) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateRepairExecutionState") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTask, + Constraints: []validation.Constraint{{Target: "repairTask.TaskID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "repairTask.Action", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateRepairExecutionState", err.Error()) + } + + req, err := client.UpdateRepairExecutionStatePreparer(ctx, repairTask) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateRepairExecutionStateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", resp, "Failure sending request") + return + } + + result, err = client.UpdateRepairExecutionStateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairExecutionState", resp, "Failure responding to request") + } + + return +} + +// UpdateRepairExecutionStatePreparer prepares the UpdateRepairExecutionState request. +func (client BaseClient) UpdateRepairExecutionStatePreparer(ctx context.Context, repairTask RepairTask) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateRepairExecutionState"), + autorest.WithJSON(repairTask), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateRepairExecutionStateSender sends the UpdateRepairExecutionState request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateRepairExecutionStateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateRepairExecutionStateResponder handles the response to the UpdateRepairExecutionState request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateRepairExecutionStateResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UpdateRepairTaskHealthPolicy this API supports the Service Fabric platform; it is not meant to be used directly from +// your code. +// Parameters: +// repairTaskUpdateHealthPolicyDescription - describes the repair task healthy policy to be updated. +func (client BaseClient) UpdateRepairTaskHealthPolicy(ctx context.Context, repairTaskUpdateHealthPolicyDescription RepairTaskUpdateHealthPolicyDescription) (result RepairTaskUpdateInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateRepairTaskHealthPolicy") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: repairTaskUpdateHealthPolicyDescription, + Constraints: []validation.Constraint{{Target: "repairTaskUpdateHealthPolicyDescription.TaskID", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", err.Error()) + } + + req, err := client.UpdateRepairTaskHealthPolicyPreparer(ctx, repairTaskUpdateHealthPolicyDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateRepairTaskHealthPolicySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", resp, "Failure sending request") + return + } + + result, err = client.UpdateRepairTaskHealthPolicyResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateRepairTaskHealthPolicy", resp, "Failure responding to request") + } + + return +} + +// UpdateRepairTaskHealthPolicyPreparer prepares the UpdateRepairTaskHealthPolicy request. +func (client BaseClient) UpdateRepairTaskHealthPolicyPreparer(ctx context.Context, repairTaskUpdateHealthPolicyDescription RepairTaskUpdateHealthPolicyDescription) (*http.Request, error) { + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/$/UpdateRepairTaskHealthPolicy"), + autorest.WithJSON(repairTaskUpdateHealthPolicyDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateRepairTaskHealthPolicySender sends the UpdateRepairTaskHealthPolicy request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateRepairTaskHealthPolicySender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateRepairTaskHealthPolicyResponder handles the response to the UpdateRepairTaskHealthPolicy request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateRepairTaskHealthPolicyResponder(resp *http.Response) (result RepairTaskUpdateInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UpdateService this API allows updating properties of a running Service Fabric service. The set of properties that +// can be updated are a subset of the properties that were specified at the time of creating the service. The current +// set of properties can be obtained using `GetServiceDescription` API. Note that updating the properties of a running +// service is different than upgrading your application using `StartApplicationUpgrade` API. The upgrade is a long +// running background operation that involves moving the application from one version to another, one upgrade domain at +// a time, whereas update applies the new properties immediately to the service. +// Parameters: +// serviceID - the identity of the service. This ID is typically the full name of the service without the +// 'fabric:' URI scheme. +// Starting from version 6.0, hierarchical names are delimited with the "~" character. +// For example, if the service name is "fabric:/myapp/app1/svc1", the service identity would be +// "myapp~app1~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. +// serviceUpdateDescription - the information necessary to update a service. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UpdateService(ctx context.Context, serviceID string, serviceUpdateDescription BasicServiceUpdateDescription, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UpdateService") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UpdateService", err.Error()) + } + + req, err := client.UpdateServicePreparer(ctx, serviceID, serviceUpdateDescription, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateServiceSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", resp, "Failure sending request") + return + } + + result, err = client.UpdateServiceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UpdateService", resp, "Failure responding to request") + } + + return +} + +// UpdateServicePreparer prepares the UpdateService request. +func (client BaseClient) UpdateServicePreparer(ctx context.Context, serviceID string, serviceUpdateDescription BasicServiceUpdateDescription, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "serviceId": serviceID, + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Services/{serviceId}/$/Update", pathParameters), + autorest.WithJSON(serviceUpdateDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateServiceSender sends the UpdateService request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UpdateServiceSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UpdateServiceResponder handles the response to the UpdateService request. The method always +// closes the http.Response Body. +func (client BaseClient) UpdateServiceResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UploadFile uploads contents of the file to the image store. Use this API if the file is small enough to upload again +// if the connection fails. The file's data needs to be added to the request body. The contents will be uploaded to the +// specified path. Image store service uses a mark file to indicate the availability of the folder. The mark file is an +// empty file named "_.dir". The mark file is generated by the image store service when all files in a folder are +// uploaded. When using File-by-File approach to upload application package in REST, the image store service isn't +// aware of the file hierarchy of the application package; you need to create a mark file per folder and upload it +// last, to let the image store service know that the folder is complete. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UploadFile(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UploadFile") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UploadFile", err.Error()) + } + + req, err := client.UploadFilePreparer(ctx, contentPath, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", nil, "Failure preparing request") + return + } + + resp, err := client.UploadFileSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", resp, "Failure sending request") + return + } + + result, err = client.UploadFileResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFile", resp, "Failure responding to request") + } + + return +} + +// UploadFilePreparer prepares the UploadFile request. +func (client BaseClient) UploadFilePreparer(ctx context.Context, contentPath string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadFileSender sends the UploadFile request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UploadFileSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UploadFileResponder handles the response to the UploadFile request. The method always +// closes the http.Response Body. +func (client BaseClient) UploadFileResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} + +// UploadFileChunk uploads a file chunk to the image store with the specified upload session ID and image store +// relative path. This API allows user to resume the file upload operation. user doesn't have to restart the file +// upload from scratch whenever there is a network interruption. Use this option if the file size is large. +// +// To perform a resumable file upload, user need to break the file into multiple chunks and upload these chunks to the +// image store one-by-one. Chunks don't have to be uploaded in order. If the file represented by the image store +// relative path already exists, it will be overwritten when the upload session commits. +// Parameters: +// contentPath - relative path to file or folder in the image store from its root. +// sessionID - a GUID generated by the user for a file uploading. It identifies an image store upload session +// which keeps track of all file chunks until it is committed. +// contentRange - when uploading file chunks to the image store, the Content-Range header field need to be +// configured and sent with a request. The format should looks like "bytes +// {First-Byte-Position}-{Last-Byte-Position}/{File-Length}". For example, Content-Range:bytes 300-5000/20000 +// indicates that user is sending bytes 300 through 5,000 and the total file length is 20,000 bytes. +// timeout - the server timeout for performing the operation in seconds. This timeout specifies the time +// duration that the client is willing to wait for the requested operation to complete. The default value for +// this parameter is 60 seconds. +func (client BaseClient) UploadFileChunk(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BaseClient.UploadFileChunk") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: timeout, + Constraints: []validation.Constraint{{Target: "timeout", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "timeout", Name: validation.InclusiveMaximum, Rule: int64(4294967295), Chain: nil}, + {Target: "timeout", Name: validation.InclusiveMinimum, Rule: 1, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.BaseClient", "UploadFileChunk", err.Error()) + } + + req, err := client.UploadFileChunkPreparer(ctx, contentPath, sessionID, contentRange, timeout) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", nil, "Failure preparing request") + return + } + + resp, err := client.UploadFileChunkSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", resp, "Failure sending request") + return + } + + result, err = client.UploadFileChunkResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.BaseClient", "UploadFileChunk", resp, "Failure responding to request") + } + + return +} + +// UploadFileChunkPreparer prepares the UploadFileChunk request. +func (client BaseClient) UploadFileChunkPreparer(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "contentPath": autorest.Encode("path", contentPath), + } + + const APIVersion = "6.0" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + "session-id": autorest.Encode("query", sessionID), + } + if timeout != nil { + queryParameters["timeout"] = autorest.Encode("query", *timeout) + } else { + queryParameters["timeout"] = autorest.Encode("query", 60) + } + + preparer := autorest.CreatePreparer( + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/ImageStore/{contentPath}/$/UploadChunk", pathParameters), + autorest.WithQueryParameters(queryParameters), + autorest.WithHeader("Content-Range", autorest.String(contentRange))) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadFileChunkSender sends the UploadFileChunk request. The method will close the +// http.Response Body if it receives an error. +func (client BaseClient) UploadFileChunkSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// UploadFileChunkResponder handles the response to the UploadFileChunk request. The method always +// closes the http.Response Body. +func (client BaseClient) UploadFileChunkResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByClosing()) + result.Response = resp + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshapplication.go b/services/servicefabric/6.4/servicefabric/meshapplication.go new file mode 100644 index 000000000000..17783d7232f0 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshapplication.go @@ -0,0 +1,345 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshApplicationClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, +// applications and services. +type MeshApplicationClient struct { + BaseClient +} + +// NewMeshApplicationClient creates an instance of the MeshApplicationClient client. +func NewMeshApplicationClient() MeshApplicationClient { + return NewMeshApplicationClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshApplicationClientWithBaseURI creates an instance of the MeshApplicationClient client. +func NewMeshApplicationClientWithBaseURI(baseURI string) MeshApplicationClient { + return MeshApplicationClient{NewWithBaseURI(baseURI)} +} + +// CreateOrUpdate creates a Application resource with the specified name, description and properties. If Application +// resource with the same name exists, then it is updated with the specified description and properties. +// Parameters: +// applicationResourceName - the identity of the application. +// applicationResourceDescription - description for creating a Application resource. +func (client MeshApplicationClient) CreateOrUpdate(ctx context.Context, applicationResourceName string, applicationResourceDescription ApplicationResourceDescription) (result ApplicationResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshApplicationClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: applicationResourceDescription, + Constraints: []validation.Constraint{{Target: "applicationResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "applicationResourceDescription.ApplicationProperties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshApplicationClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, applicationResourceName, applicationResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MeshApplicationClient) CreateOrUpdatePreparer(ctx context.Context, applicationResourceName string, applicationResourceDescription ApplicationResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithJSON(applicationResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MeshApplicationClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MeshApplicationClient) CreateOrUpdateResponder(resp *http.Response) (result ApplicationResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the Application resource identified by the name. +// Parameters: +// applicationResourceName - the identity of the application. +func (client MeshApplicationClient) Delete(ctx context.Context, applicationResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshApplicationClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshApplicationClient) DeletePreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshApplicationClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshApplicationClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the information about the Application resource with the given name. The information include the description +// and other properties of the Application. +// Parameters: +// applicationResourceName - the identity of the application. +func (client MeshApplicationClient) Get(ctx context.Context, applicationResourceName string) (result ApplicationResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshApplicationClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshApplicationClient) GetPreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshApplicationClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshApplicationClient) GetResponder(resp *http.Response) (result ApplicationResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all application resources in a given resource group. The information include the +// description and other properties of the Application. +func (client MeshApplicationClient) List(ctx context.Context) (result PagedApplicationResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshApplicationClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshApplicationClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshApplicationClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Resources/Applications"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshApplicationClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshApplicationClient) ListResponder(resp *http.Response) (result PagedApplicationResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshcodepackage.go b/services/servicefabric/6.4/servicefabric/meshcodepackage.go new file mode 100644 index 000000000000..827309835337 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshcodepackage.go @@ -0,0 +1,126 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshCodePackageClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, +// applications and services. +type MeshCodePackageClient struct { + BaseClient +} + +// NewMeshCodePackageClient creates an instance of the MeshCodePackageClient client. +func NewMeshCodePackageClient() MeshCodePackageClient { + return NewMeshCodePackageClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshCodePackageClientWithBaseURI creates an instance of the MeshCodePackageClient client. +func NewMeshCodePackageClientWithBaseURI(baseURI string) MeshCodePackageClient { + return MeshCodePackageClient{NewWithBaseURI(baseURI)} +} + +// GetContainerLogs gets the logs for the container of the specified code package of the service replica. +// Parameters: +// applicationResourceName - the identity of the application. +// serviceResourceName - the identity of the service. +// replicaName - service Fabric replica name. +// codePackageName - the name of code package of the service. +// tail - number of lines to show from the end of the logs. Default is 100. 'all' to show the complete logs. +func (client MeshCodePackageClient) GetContainerLogs(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string, codePackageName string, tail string) (result ContainerLogs, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshCodePackageClient.GetContainerLogs") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetContainerLogsPreparer(ctx, applicationResourceName, serviceResourceName, replicaName, codePackageName, tail) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshCodePackageClient", "GetContainerLogs", nil, "Failure preparing request") + return + } + + resp, err := client.GetContainerLogsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshCodePackageClient", "GetContainerLogs", resp, "Failure sending request") + return + } + + result, err = client.GetContainerLogsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshCodePackageClient", "GetContainerLogs", resp, "Failure responding to request") + } + + return +} + +// GetContainerLogsPreparer prepares the GetContainerLogs request. +func (client MeshCodePackageClient) GetContainerLogsPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string, codePackageName string, tail string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "codePackageName": autorest.Encode("path", codePackageName), + "replicaName": replicaName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(tail) > 0 { + queryParameters["Tail"] = autorest.Encode("query", tail) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas/{replicaName}/CodePackages/{codePackageName}/Logs", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetContainerLogsSender sends the GetContainerLogs request. The method will close the +// http.Response Body if it receives an error. +func (client MeshCodePackageClient) GetContainerLogsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetContainerLogsResponder handles the response to the GetContainerLogs request. The method always +// closes the http.Response Body. +func (client MeshCodePackageClient) GetContainerLogsResponder(resp *http.Response) (result ContainerLogs, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshgateway.go b/services/servicefabric/6.4/servicefabric/meshgateway.go new file mode 100644 index 000000000000..abcde9b3825b --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshgateway.go @@ -0,0 +1,349 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshGatewayClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications +// and services. +type MeshGatewayClient struct { + BaseClient +} + +// NewMeshGatewayClient creates an instance of the MeshGatewayClient client. +func NewMeshGatewayClient() MeshGatewayClient { + return NewMeshGatewayClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshGatewayClientWithBaseURI creates an instance of the MeshGatewayClient client. +func NewMeshGatewayClientWithBaseURI(baseURI string) MeshGatewayClient { + return MeshGatewayClient{NewWithBaseURI(baseURI)} +} + +// CreateOrUpdate creates a Gateway resource with the specified name, description and properties. If Gateway resource +// with the same name exists, then it is updated with the specified description and properties. Use Gateway resource to +// provide public connectivity to application services. +// Parameters: +// gatewayResourceName - the identity of the gateway. +// gatewayResourceDescription - description for creating a Gateway resource. +func (client MeshGatewayClient) CreateOrUpdate(ctx context.Context, gatewayResourceName string, gatewayResourceDescription GatewayResourceDescription) (result GatewayResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshGatewayClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: gatewayResourceDescription, + Constraints: []validation.Constraint{{Target: "gatewayResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "gatewayResourceDescription.GatewayProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "gatewayResourceDescription.GatewayProperties.SourceNetwork", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "gatewayResourceDescription.GatewayProperties.DestinationNetwork", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshGatewayClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, gatewayResourceName, gatewayResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MeshGatewayClient) CreateOrUpdatePreparer(ctx context.Context, gatewayResourceName string, gatewayResourceDescription GatewayResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "gatewayResourceName": gatewayResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Gateways/{gatewayResourceName}", pathParameters), + autorest.WithJSON(gatewayResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MeshGatewayClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MeshGatewayClient) CreateOrUpdateResponder(resp *http.Response) (result GatewayResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the Gateway resource identified by the name. +// Parameters: +// gatewayResourceName - the identity of the gateway. +func (client MeshGatewayClient) Delete(ctx context.Context, gatewayResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshGatewayClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, gatewayResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshGatewayClient) DeletePreparer(ctx context.Context, gatewayResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "gatewayResourceName": gatewayResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Gateways/{gatewayResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshGatewayClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshGatewayClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the information about the Gateway resource with the given name. The information include the description and +// other properties of the Gateway. +// Parameters: +// gatewayResourceName - the identity of the gateway. +func (client MeshGatewayClient) Get(ctx context.Context, gatewayResourceName string) (result GatewayResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshGatewayClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, gatewayResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshGatewayClient) GetPreparer(ctx context.Context, gatewayResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "gatewayResourceName": gatewayResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Gateways/{gatewayResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshGatewayClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshGatewayClient) GetResponder(resp *http.Response) (result GatewayResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all gateway resources in a given resource group. The information include the +// description and other properties of the Gateway. +func (client MeshGatewayClient) List(ctx context.Context) (result PagedGatewayResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshGatewayClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshGatewayClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshGatewayClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Resources/Gateways"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshGatewayClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshGatewayClient) ListResponder(resp *http.Response) (result PagedGatewayResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshnetwork.go b/services/servicefabric/6.4/servicefabric/meshnetwork.go new file mode 100644 index 000000000000..3c3f042b6efc --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshnetwork.go @@ -0,0 +1,346 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshNetworkClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications +// and services. +type MeshNetworkClient struct { + BaseClient +} + +// NewMeshNetworkClient creates an instance of the MeshNetworkClient client. +func NewMeshNetworkClient() MeshNetworkClient { + return NewMeshNetworkClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshNetworkClientWithBaseURI creates an instance of the MeshNetworkClient client. +func NewMeshNetworkClientWithBaseURI(baseURI string) MeshNetworkClient { + return MeshNetworkClient{NewWithBaseURI(baseURI)} +} + +// CreateOrUpdate creates a Network resource with the specified name, description and properties. If Network resource +// with the same name exists, then it is updated with the specified description and properties. Network resource +// provides connectivity between application services. +// Parameters: +// networkResourceName - the identity of the network. +// networkResourceDescription - description for creating a Network resource. +func (client MeshNetworkClient) CreateOrUpdate(ctx context.Context, networkResourceName string, networkResourceDescription NetworkResourceDescription) (result NetworkResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: networkResourceDescription, + Constraints: []validation.Constraint{{Target: "networkResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "networkResourceDescription.Properties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshNetworkClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, networkResourceName, networkResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MeshNetworkClient) CreateOrUpdatePreparer(ctx context.Context, networkResourceName string, networkResourceDescription NetworkResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "networkResourceName": networkResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), + autorest.WithJSON(networkResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MeshNetworkClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MeshNetworkClient) CreateOrUpdateResponder(resp *http.Response) (result NetworkResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the Network resource identified by the name. +// Parameters: +// networkResourceName - the identity of the network. +func (client MeshNetworkClient) Delete(ctx context.Context, networkResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, networkResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshNetworkClient) DeletePreparer(ctx context.Context, networkResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "networkResourceName": networkResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshNetworkClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshNetworkClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the information about the Network resource with the given name. The information include the description and +// other properties of the Network. +// Parameters: +// networkResourceName - the identity of the network. +func (client MeshNetworkClient) Get(ctx context.Context, networkResourceName string) (result NetworkResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, networkResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshNetworkClient) GetPreparer(ctx context.Context, networkResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "networkResourceName": networkResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Networks/{networkResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshNetworkClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshNetworkClient) GetResponder(resp *http.Response) (result NetworkResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all network resources in a given resource group. The information include the +// description and other properties of the Network. +func (client MeshNetworkClient) List(ctx context.Context) (result PagedNetworkResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshNetworkClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshNetworkClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshNetworkClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Resources/Networks"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshNetworkClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshNetworkClient) ListResponder(resp *http.Response) (result PagedNetworkResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshsecret.go b/services/servicefabric/6.4/servicefabric/meshsecret.go new file mode 100644 index 000000000000..c754343cf132 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshsecret.go @@ -0,0 +1,346 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshSecretClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications +// and services. +type MeshSecretClient struct { + BaseClient +} + +// NewMeshSecretClient creates an instance of the MeshSecretClient client. +func NewMeshSecretClient() MeshSecretClient { + return NewMeshSecretClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshSecretClientWithBaseURI creates an instance of the MeshSecretClient client. +func NewMeshSecretClientWithBaseURI(baseURI string) MeshSecretClient { + return MeshSecretClient{NewWithBaseURI(baseURI)} +} + +// CreateOrUpdate creates a Secret resource with the specified name, description and properties. If Secret resource +// with the same name exists, then it is updated with the specified description and properties. Once created, the kind +// and contentType of a secret resource cannot be updated. +// Parameters: +// secretResourceName - the name of the secret resource. +// secretResourceDescription - description for creating a secret resource. +func (client MeshSecretClient) CreateOrUpdate(ctx context.Context, secretResourceName string, secretResourceDescription SecretResourceDescription) (result SecretResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: secretResourceDescription, + Constraints: []validation.Constraint{{Target: "secretResourceDescription.Properties", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "secretResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshSecretClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, secretResourceName, secretResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MeshSecretClient) CreateOrUpdatePreparer(ctx context.Context, secretResourceName string, secretResourceDescription SecretResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}", pathParameters), + autorest.WithJSON(secretResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MeshSecretClient) CreateOrUpdateResponder(resp *http.Response) (result SecretResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the specified Secret resource and all of its named values. +// Parameters: +// secretResourceName - the name of the secret resource. +func (client MeshSecretClient) Delete(ctx context.Context, secretResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, secretResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshSecretClient) DeletePreparer(ctx context.Context, secretResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshSecretClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the information about the Secret resource with the given name. The information include the description and +// other properties of the Secret. +// Parameters: +// secretResourceName - the name of the secret resource. +func (client MeshSecretClient) Get(ctx context.Context, secretResourceName string) (result SecretResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, secretResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshSecretClient) GetPreparer(ctx context.Context, secretResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshSecretClient) GetResponder(resp *http.Response) (result SecretResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all secret resources in a given resource group. The information include the +// description and other properties of the Secret. +func (client MeshSecretClient) List(ctx context.Context) (result PagedSecretResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshSecretClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Resources/Secrets"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshSecretClient) ListResponder(resp *http.Response) (result PagedSecretResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshsecretvalue.go b/services/servicefabric/6.4/servicefabric/meshsecretvalue.go new file mode 100644 index 000000000000..80feda3ab603 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshsecretvalue.go @@ -0,0 +1,438 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshSecretValueClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, +// applications and services. +type MeshSecretValueClient struct { + BaseClient +} + +// NewMeshSecretValueClient creates an instance of the MeshSecretValueClient client. +func NewMeshSecretValueClient() MeshSecretValueClient { + return NewMeshSecretValueClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshSecretValueClientWithBaseURI creates an instance of the MeshSecretValueClient client. +func NewMeshSecretValueClientWithBaseURI(baseURI string) MeshSecretValueClient { + return MeshSecretValueClient{NewWithBaseURI(baseURI)} +} + +// AddValue creates a new value of the specified secret resource. The name of the value is typically the version +// identifier. Once created the value cannot be changed. +// Parameters: +// secretResourceName - the name of the secret resource. +// secretValueResourceName - the name of the secret resource value which is typically the version identifier +// for the value. +// secretValueResourceDescription - description for creating a value of a secret resource. +func (client MeshSecretValueClient) AddValue(ctx context.Context, secretResourceName string, secretValueResourceName string, secretValueResourceDescription SecretValueResourceDescription) (result SecretValueResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretValueClient.AddValue") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: secretValueResourceDescription, + Constraints: []validation.Constraint{{Target: "secretValueResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "secretValueResourceDescription.SecretValueResourceProperties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshSecretValueClient", "AddValue", err.Error()) + } + + req, err := client.AddValuePreparer(ctx, secretResourceName, secretValueResourceName, secretValueResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "AddValue", nil, "Failure preparing request") + return + } + + resp, err := client.AddValueSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "AddValue", resp, "Failure sending request") + return + } + + result, err = client.AddValueResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "AddValue", resp, "Failure responding to request") + } + + return +} + +// AddValuePreparer prepares the AddValue request. +func (client MeshSecretValueClient) AddValuePreparer(ctx context.Context, secretResourceName string, secretValueResourceName string, secretValueResourceDescription SecretValueResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + "secretValueResourceName": secretValueResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}", pathParameters), + autorest.WithJSON(secretValueResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// AddValueSender sends the AddValue request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretValueClient) AddValueSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// AddValueResponder handles the response to the AddValue request. The method always +// closes the http.Response Body. +func (client MeshSecretValueClient) AddValueResponder(resp *http.Response) (result SecretValueResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the secret value resource identified by the name. The name of the resource is typically the version +// associated with that value. Deletion will fail if the specified value is in use. +// Parameters: +// secretResourceName - the name of the secret resource. +// secretValueResourceName - the name of the secret resource value which is typically the version identifier +// for the value. +func (client MeshSecretValueClient) Delete(ctx context.Context, secretResourceName string, secretValueResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretValueClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, secretResourceName, secretValueResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshSecretValueClient) DeletePreparer(ctx context.Context, secretResourceName string, secretValueResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + "secretValueResourceName": secretValueResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretValueClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshSecretValueClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get the information about the specified named secret value resources. The information does not include the +// actual value of the secret. +// Parameters: +// secretResourceName - the name of the secret resource. +// secretValueResourceName - the name of the secret resource value which is typically the version identifier +// for the value. +func (client MeshSecretValueClient) Get(ctx context.Context, secretResourceName string, secretValueResourceName string) (result SecretValueResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretValueClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, secretResourceName, secretValueResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshSecretValueClient) GetPreparer(ctx context.Context, secretResourceName string, secretValueResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + "secretValueResourceName": secretValueResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretValueClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshSecretValueClient) GetResponder(resp *http.Response) (result SecretValueResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets information about all secret value resources of the specified secret resource. The information includes +// the names of the secret value resources, but not the actual values. +// Parameters: +// secretResourceName - the name of the secret resource. +func (client MeshSecretValueClient) List(ctx context.Context, secretResourceName string) (result PagedSecretValueResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretValueClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, secretResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshSecretValueClient) ListPreparer(ctx context.Context, secretResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}/values", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretValueClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshSecretValueClient) ListResponder(resp *http.Response) (result PagedSecretValueResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Show lists the decrypted value of the specified named value of the secret resource. This is a privileged operation. +// Parameters: +// secretResourceName - the name of the secret resource. +// secretValueResourceName - the name of the secret resource value which is typically the version identifier +// for the value. +func (client MeshSecretValueClient) Show(ctx context.Context, secretResourceName string, secretValueResourceName string) (result SecretValue, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshSecretValueClient.Show") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ShowPreparer(ctx, secretResourceName, secretValueResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Show", nil, "Failure preparing request") + return + } + + resp, err := client.ShowSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Show", resp, "Failure sending request") + return + } + + result, err = client.ShowResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshSecretValueClient", "Show", resp, "Failure responding to request") + } + + return +} + +// ShowPreparer prepares the Show request. +func (client MeshSecretValueClient) ShowPreparer(ctx context.Context, secretResourceName string, secretValueResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "secretResourceName": secretResourceName, + "secretValueResourceName": secretValueResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Secrets/{secretResourceName}/values/{secretValueResourceName}/list_value", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ShowSender sends the Show request. The method will close the +// http.Response Body if it receives an error. +func (client MeshSecretValueClient) ShowSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ShowResponder handles the response to the Show request. The method always +// closes the http.Response Body. +func (client MeshSecretValueClient) ShowResponder(resp *http.Response) (result SecretValue, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshservice.go b/services/servicefabric/6.4/servicefabric/meshservice.go new file mode 100644 index 000000000000..2386e14dd122 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshservice.go @@ -0,0 +1,194 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshServiceClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications +// and services. +type MeshServiceClient struct { + BaseClient +} + +// NewMeshServiceClient creates an instance of the MeshServiceClient client. +func NewMeshServiceClient() MeshServiceClient { + return NewMeshServiceClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshServiceClientWithBaseURI creates an instance of the MeshServiceClient client. +func NewMeshServiceClientWithBaseURI(baseURI string) MeshServiceClient { + return MeshServiceClient{NewWithBaseURI(baseURI)} +} + +// Get gets the information about the Service resource with the given name. The information include the description and +// other properties of the Service. +// Parameters: +// applicationResourceName - the identity of the application. +// serviceResourceName - the identity of the service. +func (client MeshServiceClient) Get(ctx context.Context, applicationResourceName string, serviceResourceName string) (result ServiceResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshServiceClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, applicationResourceName, serviceResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshServiceClient) GetPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshServiceClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshServiceClient) GetResponder(resp *http.Response) (result ServiceResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all services of an application resource. The information include the description and +// other properties of the Service. +// Parameters: +// applicationResourceName - the identity of the application. +func (client MeshServiceClient) List(ctx context.Context, applicationResourceName string) (result PagedServiceResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshServiceClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, applicationResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshServiceClient) ListPreparer(ctx context.Context, applicationResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshServiceClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshServiceClient) ListResponder(resp *http.Response) (result PagedServiceResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshservicereplica.go b/services/servicefabric/6.4/servicefabric/meshservicereplica.go new file mode 100644 index 000000000000..470939e8e574 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshservicereplica.go @@ -0,0 +1,198 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshServiceReplicaClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, +// applications and services. +type MeshServiceReplicaClient struct { + BaseClient +} + +// NewMeshServiceReplicaClient creates an instance of the MeshServiceReplicaClient client. +func NewMeshServiceReplicaClient() MeshServiceReplicaClient { + return NewMeshServiceReplicaClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshServiceReplicaClientWithBaseURI creates an instance of the MeshServiceReplicaClient client. +func NewMeshServiceReplicaClientWithBaseURI(baseURI string) MeshServiceReplicaClient { + return MeshServiceReplicaClient{NewWithBaseURI(baseURI)} +} + +// Get gets the information about the service replica with the given name. The information include the description and +// other properties of the service replica. +// Parameters: +// applicationResourceName - the identity of the application. +// serviceResourceName - the identity of the service. +// replicaName - service Fabric replica name. +func (client MeshServiceReplicaClient) Get(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (result ServiceReplicaDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshServiceReplicaClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, applicationResourceName, serviceResourceName, replicaName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshServiceReplicaClient) GetPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "replicaName": replicaName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas/{replicaName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshServiceReplicaClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshServiceReplicaClient) GetResponder(resp *http.Response) (result ServiceReplicaDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all replicas of a service. The information include the description and other +// properties of the service replica. +// Parameters: +// applicationResourceName - the identity of the application. +// serviceResourceName - the identity of the service. +func (client MeshServiceReplicaClient) List(ctx context.Context, applicationResourceName string, serviceResourceName string) (result PagedServiceReplicaDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshServiceReplicaClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, applicationResourceName, serviceResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshServiceReplicaClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshServiceReplicaClient) ListPreparer(ctx context.Context, applicationResourceName string, serviceResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "applicationResourceName": applicationResourceName, + "serviceResourceName": serviceResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Applications/{applicationResourceName}/Services/{serviceResourceName}/Replicas", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshServiceReplicaClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshServiceReplicaClient) ListResponder(resp *http.Response) (result PagedServiceReplicaDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/meshvolume.go b/services/servicefabric/6.4/servicefabric/meshvolume.go new file mode 100644 index 000000000000..df0bd14cc662 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/meshvolume.go @@ -0,0 +1,351 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// MeshVolumeClient is the service Fabric REST Client APIs allows management of Service Fabric clusters, applications +// and services. +type MeshVolumeClient struct { + BaseClient +} + +// NewMeshVolumeClient creates an instance of the MeshVolumeClient client. +func NewMeshVolumeClient() MeshVolumeClient { + return NewMeshVolumeClientWithBaseURI(DefaultBaseURI) +} + +// NewMeshVolumeClientWithBaseURI creates an instance of the MeshVolumeClient client. +func NewMeshVolumeClientWithBaseURI(baseURI string) MeshVolumeClient { + return MeshVolumeClient{NewWithBaseURI(baseURI)} +} + +// CreateOrUpdate creates a Volume resource with the specified name, description and properties. If Volume resource +// with the same name exists, then it is updated with the specified description and properties. +// Parameters: +// volumeResourceName - the identity of the volume. +// volumeResourceDescription - description for creating a Volume resource. +func (client MeshVolumeClient) CreateOrUpdate(ctx context.Context, volumeResourceName string, volumeResourceDescription VolumeResourceDescription) (result VolumeResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshVolumeClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: volumeResourceDescription, + Constraints: []validation.Constraint{{Target: "volumeResourceDescription.Name", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "volumeResourceDescription.VolumeProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "volumeResourceDescription.VolumeProperties.Provider", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters.AccountName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "volumeResourceDescription.VolumeProperties.AzureFileParameters.ShareName", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("servicefabric.MeshVolumeClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, volumeResourceName, volumeResourceDescription) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + resp, err := client.CreateOrUpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "CreateOrUpdate", resp, "Failure sending request") + return + } + + result, err = client.CreateOrUpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "CreateOrUpdate", resp, "Failure responding to request") + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client MeshVolumeClient) CreateOrUpdatePreparer(ctx context.Context, volumeResourceName string, volumeResourceDescription VolumeResourceDescription) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithJSON(volumeResourceDescription), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client MeshVolumeClient) CreateOrUpdateSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client MeshVolumeClient) CreateOrUpdateResponder(resp *http.Response) (result VolumeResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusCreated, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the Volume resource identified by the name. +// Parameters: +// volumeResourceName - the identity of the volume. +func (client MeshVolumeClient) Delete(ctx context.Context, volumeResourceName string) (result autorest.Response, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshVolumeClient.Delete") + defer func() { + sc := -1 + if result.Response != nil { + sc = result.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, volumeResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Delete", nil, "Failure preparing request") + return + } + + resp, err := client.DeleteSender(req) + if err != nil { + result.Response = resp + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Delete", resp, "Failure sending request") + return + } + + result, err = client.DeleteResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Delete", resp, "Failure responding to request") + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client MeshVolumeClient) DeletePreparer(ctx context.Context, volumeResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client MeshVolumeClient) DeleteSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client MeshVolumeClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the information about the Volume resource with the given name. The information include the description and +// other properties of the Volume. +// Parameters: +// volumeResourceName - the identity of the volume. +func (client MeshVolumeClient) Get(ctx context.Context, volumeResourceName string) (result VolumeResourceDescription, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshVolumeClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, volumeResourceName) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MeshVolumeClient) GetPreparer(ctx context.Context, volumeResourceName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "volumeResourceName": volumeResourceName, + } + + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Resources/Volumes/{volumeResourceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client MeshVolumeClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MeshVolumeClient) GetResponder(resp *http.Response) (result VolumeResourceDescription, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the information about all volume resources in a given resource group. The information include the +// description and other properties of the Volume. +func (client MeshVolumeClient) List(ctx context.Context) (result PagedVolumeResourceDescriptionList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MeshVolumeClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "servicefabric.MeshVolumeClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client MeshVolumeClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "6.4-preview" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/Resources/Volumes"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client MeshVolumeClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client MeshVolumeClient) ListResponder(resp *http.Response) (result PagedVolumeResourceDescriptionList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/servicefabric/6.4/servicefabric/models.go b/services/servicefabric/6.4/servicefabric/models.go new file mode 100644 index 000000000000..7daac85f2b91 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/models.go @@ -0,0 +1,51314 @@ +package servicefabric + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/date" + "github.com/satori/go.uuid" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.4/servicefabric" + +// ApplicationDefinitionKind enumerates the values for application definition kind. +type ApplicationDefinitionKind string + +const ( + // Compose Indicates the application is defined by compose file(s). The value is 1. + Compose ApplicationDefinitionKind = "Compose" + // Invalid Indicates the application definition kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is 65535. + Invalid ApplicationDefinitionKind = "Invalid" + // ServiceFabricApplicationDescription Indicates the application is defined by a Service Fabric application + // description. The value is 0. + ServiceFabricApplicationDescription ApplicationDefinitionKind = "ServiceFabricApplicationDescription" +) + +// PossibleApplicationDefinitionKindValues returns an array of possible values for the ApplicationDefinitionKind const type. +func PossibleApplicationDefinitionKindValues() []ApplicationDefinitionKind { + return []ApplicationDefinitionKind{Compose, Invalid, ServiceFabricApplicationDescription} +} + +// ApplicationPackageCleanupPolicy enumerates the values for application package cleanup policy. +type ApplicationPackageCleanupPolicy string + +const ( + // ApplicationPackageCleanupPolicyAutomatic Indicates that the service fabric runtime determines when to do + // the application package cleanup. By default, cleanup is done on successful provision. The value is 2. + ApplicationPackageCleanupPolicyAutomatic ApplicationPackageCleanupPolicy = "Automatic" + // ApplicationPackageCleanupPolicyDefault Indicates that the cleanup policy of application packages is + // based on the cluster setting "CleanupApplicationPackageOnProvisionSuccess." The value is 1. + ApplicationPackageCleanupPolicyDefault ApplicationPackageCleanupPolicy = "Default" + // ApplicationPackageCleanupPolicyInvalid Indicates that the application package cleanup policy is invalid. + // This value is default. The value is zero. + ApplicationPackageCleanupPolicyInvalid ApplicationPackageCleanupPolicy = "Invalid" + // ApplicationPackageCleanupPolicyManual Indicates that the user has to explicitly clean up the application + // package. The value is 3. + ApplicationPackageCleanupPolicyManual ApplicationPackageCleanupPolicy = "Manual" +) + +// PossibleApplicationPackageCleanupPolicyValues returns an array of possible values for the ApplicationPackageCleanupPolicy const type. +func PossibleApplicationPackageCleanupPolicyValues() []ApplicationPackageCleanupPolicy { + return []ApplicationPackageCleanupPolicy{ApplicationPackageCleanupPolicyAutomatic, ApplicationPackageCleanupPolicyDefault, ApplicationPackageCleanupPolicyInvalid, ApplicationPackageCleanupPolicyManual} +} + +// ApplicationScopedVolumeKind enumerates the values for application scoped volume kind. +type ApplicationScopedVolumeKind string + +const ( + // ServiceFabricVolumeDisk Provides Service Fabric High Availability Volume Disk + ServiceFabricVolumeDisk ApplicationScopedVolumeKind = "ServiceFabricVolumeDisk" +) + +// PossibleApplicationScopedVolumeKindValues returns an array of possible values for the ApplicationScopedVolumeKind const type. +func PossibleApplicationScopedVolumeKindValues() []ApplicationScopedVolumeKind { + return []ApplicationScopedVolumeKind{ServiceFabricVolumeDisk} +} + +// ApplicationStatus enumerates the values for application status. +type ApplicationStatus string + +const ( + // ApplicationStatusCreating Indicates the application status is creating. The value is 3. + ApplicationStatusCreating ApplicationStatus = "Creating" + // ApplicationStatusDeleting Indicates the application status is deleting. The value is 4. + ApplicationStatusDeleting ApplicationStatus = "Deleting" + // ApplicationStatusFailed Indicates the creation or deletion of application was terminated due to + // persistent failures. Another create/delete request can be accepted to resume a failed application. The + // value is 5. + ApplicationStatusFailed ApplicationStatus = "Failed" + // ApplicationStatusInvalid Indicates the application status is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ApplicationStatusInvalid ApplicationStatus = "Invalid" + // ApplicationStatusReady Indicates the application status is ready. The value is 1. + ApplicationStatusReady ApplicationStatus = "Ready" + // ApplicationStatusUpgrading Indicates the application status is upgrading. The value is 2. + ApplicationStatusUpgrading ApplicationStatus = "Upgrading" +) + +// PossibleApplicationStatusValues returns an array of possible values for the ApplicationStatus const type. +func PossibleApplicationStatusValues() []ApplicationStatus { + return []ApplicationStatus{ApplicationStatusCreating, ApplicationStatusDeleting, ApplicationStatusFailed, ApplicationStatusInvalid, ApplicationStatusReady, ApplicationStatusUpgrading} +} + +// ApplicationTypeDefinitionKind enumerates the values for application type definition kind. +type ApplicationTypeDefinitionKind string + +const ( + // ApplicationTypeDefinitionKindCompose Indicates the application type is defined and created implicitly as + // part of a compose deployment. The value is 2. + ApplicationTypeDefinitionKindCompose ApplicationTypeDefinitionKind = "Compose" + // ApplicationTypeDefinitionKindInvalid Indicates the application type definition kind is invalid. All + // Service Fabric enumerations have the invalid type. The value is 0. + ApplicationTypeDefinitionKindInvalid ApplicationTypeDefinitionKind = "Invalid" + // ApplicationTypeDefinitionKindServiceFabricApplicationPackage Indicates the application type is defined + // and created by a Service Fabric application package provided by the user. The value is 1. + ApplicationTypeDefinitionKindServiceFabricApplicationPackage ApplicationTypeDefinitionKind = "ServiceFabricApplicationPackage" +) + +// PossibleApplicationTypeDefinitionKindValues returns an array of possible values for the ApplicationTypeDefinitionKind const type. +func PossibleApplicationTypeDefinitionKindValues() []ApplicationTypeDefinitionKind { + return []ApplicationTypeDefinitionKind{ApplicationTypeDefinitionKindCompose, ApplicationTypeDefinitionKindInvalid, ApplicationTypeDefinitionKindServiceFabricApplicationPackage} +} + +// ApplicationTypeStatus enumerates the values for application type status. +type ApplicationTypeStatus string + +const ( + // ApplicationTypeStatusAvailable Indicates that the application type is fully provisioned and is available + // for use. An application of this type and version can be created. The value is 2. + ApplicationTypeStatusAvailable ApplicationTypeStatus = "Available" + // ApplicationTypeStatusFailed Indicates that the application type provisioning failed and it is + // unavailable for use. The failure details can be obtained from the application type information query. + // The failed application type information remains in the cluster until it is unprovisioned or + // reprovisioned successfully. The value is 4. + ApplicationTypeStatusFailed ApplicationTypeStatus = "Failed" + // ApplicationTypeStatusInvalid Indicates the application type status is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ApplicationTypeStatusInvalid ApplicationTypeStatus = "Invalid" + // ApplicationTypeStatusProvisioning Indicates that the application type is being provisioned in the + // cluster. The value is 1. + ApplicationTypeStatusProvisioning ApplicationTypeStatus = "Provisioning" + // ApplicationTypeStatusUnprovisioning Indicates that the application type is in process of being + // unprovisioned from the cluster. The value is 3. + ApplicationTypeStatusUnprovisioning ApplicationTypeStatus = "Unprovisioning" +) + +// PossibleApplicationTypeStatusValues returns an array of possible values for the ApplicationTypeStatus const type. +func PossibleApplicationTypeStatusValues() []ApplicationTypeStatus { + return []ApplicationTypeStatus{ApplicationTypeStatusAvailable, ApplicationTypeStatusFailed, ApplicationTypeStatusInvalid, ApplicationTypeStatusProvisioning, ApplicationTypeStatusUnprovisioning} +} + +// AutoScalingMechanismKind enumerates the values for auto scaling mechanism kind. +type AutoScalingMechanismKind string + +const ( + // AddRemoveReplica Indicates that scaling should be performed by adding or removing replicas. + AddRemoveReplica AutoScalingMechanismKind = "AddRemoveReplica" +) + +// PossibleAutoScalingMechanismKindValues returns an array of possible values for the AutoScalingMechanismKind const type. +func PossibleAutoScalingMechanismKindValues() []AutoScalingMechanismKind { + return []AutoScalingMechanismKind{AddRemoveReplica} +} + +// AutoScalingMetricKind enumerates the values for auto scaling metric kind. +type AutoScalingMetricKind string + +const ( + // Resource Indicates that the metric is one of resources, like cpu or memory. + Resource AutoScalingMetricKind = "Resource" +) + +// PossibleAutoScalingMetricKindValues returns an array of possible values for the AutoScalingMetricKind const type. +func PossibleAutoScalingMetricKindValues() []AutoScalingMetricKind { + return []AutoScalingMetricKind{Resource} +} + +// AutoScalingResourceMetricName enumerates the values for auto scaling resource metric name. +type AutoScalingResourceMetricName string + +const ( + // CPU Indicates that the resource is CPU cores. + CPU AutoScalingResourceMetricName = "cpu" + // MemoryInGB Indicates that the resource is memory in GB. + MemoryInGB AutoScalingResourceMetricName = "memoryInGB" +) + +// PossibleAutoScalingResourceMetricNameValues returns an array of possible values for the AutoScalingResourceMetricName const type. +func PossibleAutoScalingResourceMetricNameValues() []AutoScalingResourceMetricName { + return []AutoScalingResourceMetricName{CPU, MemoryInGB} +} + +// AutoScalingTriggerKind enumerates the values for auto scaling trigger kind. +type AutoScalingTriggerKind string + +const ( + // AverageLoad Indicates that scaling should be performed based on average load of all replicas in the + // service. + AverageLoad AutoScalingTriggerKind = "AverageLoad" +) + +// PossibleAutoScalingTriggerKindValues returns an array of possible values for the AutoScalingTriggerKind const type. +func PossibleAutoScalingTriggerKindValues() []AutoScalingTriggerKind { + return []AutoScalingTriggerKind{AverageLoad} +} + +// BackupEntityKind enumerates the values for backup entity kind. +type BackupEntityKind string + +const ( + // BackupEntityKindApplication Indicates the entity is a Service Fabric application. + BackupEntityKindApplication BackupEntityKind = "Application" + // BackupEntityKindInvalid Indicates an invalid entity kind. All Service Fabric enumerations have the + // invalid type. + BackupEntityKindInvalid BackupEntityKind = "Invalid" + // BackupEntityKindPartition Indicates the entity is a Service Fabric partition. + BackupEntityKindPartition BackupEntityKind = "Partition" + // BackupEntityKindService Indicates the entity is a Service Fabric service. + BackupEntityKindService BackupEntityKind = "Service" +) + +// PossibleBackupEntityKindValues returns an array of possible values for the BackupEntityKind const type. +func PossibleBackupEntityKindValues() []BackupEntityKind { + return []BackupEntityKind{BackupEntityKindApplication, BackupEntityKindInvalid, BackupEntityKindPartition, BackupEntityKindService} +} + +// BackupPolicyScope enumerates the values for backup policy scope. +type BackupPolicyScope string + +const ( + // BackupPolicyScopeApplication Indicates the backup policy is applied at application level. All services + // and partitions of the application inherit this policy unless explicitly overridden at service or + // partition level. + BackupPolicyScopeApplication BackupPolicyScope = "Application" + // BackupPolicyScopeInvalid Indicates an invalid backup policy scope type. All Service Fabric enumerations + // have the invalid type. + BackupPolicyScopeInvalid BackupPolicyScope = "Invalid" + // BackupPolicyScopePartition Indicates the backup policy is applied at partition level. Hence overriding + // any policy which may have applied at partition's service or application level. + BackupPolicyScopePartition BackupPolicyScope = "Partition" + // BackupPolicyScopeService Indicates the backup policy is applied at service level. All partitions of the + // service inherit this policy unless explicitly overridden at partition level. + BackupPolicyScopeService BackupPolicyScope = "Service" +) + +// PossibleBackupPolicyScopeValues returns an array of possible values for the BackupPolicyScope const type. +func PossibleBackupPolicyScopeValues() []BackupPolicyScope { + return []BackupPolicyScope{BackupPolicyScopeApplication, BackupPolicyScopeInvalid, BackupPolicyScopePartition, BackupPolicyScopeService} +} + +// BackupScheduleFrequencyType enumerates the values for backup schedule frequency type. +type BackupScheduleFrequencyType string + +const ( + // BackupScheduleFrequencyTypeDaily Indicates that the time based backup schedule is repeated at a daily + // frequency. + BackupScheduleFrequencyTypeDaily BackupScheduleFrequencyType = "Daily" + // BackupScheduleFrequencyTypeInvalid Indicates an invalid backup schedule frequency type. All Service + // Fabric enumerations have the invalid type. + BackupScheduleFrequencyTypeInvalid BackupScheduleFrequencyType = "Invalid" + // BackupScheduleFrequencyTypeWeekly Indicates that the time based backup schedule is repeated at a weekly + // frequency. + BackupScheduleFrequencyTypeWeekly BackupScheduleFrequencyType = "Weekly" +) + +// PossibleBackupScheduleFrequencyTypeValues returns an array of possible values for the BackupScheduleFrequencyType const type. +func PossibleBackupScheduleFrequencyTypeValues() []BackupScheduleFrequencyType { + return []BackupScheduleFrequencyType{BackupScheduleFrequencyTypeDaily, BackupScheduleFrequencyTypeInvalid, BackupScheduleFrequencyTypeWeekly} +} + +// BackupScheduleKind enumerates the values for backup schedule kind. +type BackupScheduleKind string + +const ( + // BackupScheduleKindFrequencyBased Indicates a frequency-based backup schedule. + BackupScheduleKindFrequencyBased BackupScheduleKind = "FrequencyBased" + // BackupScheduleKindInvalid Indicates an invalid backup schedule kind. All Service Fabric enumerations + // have the invalid type. + BackupScheduleKindInvalid BackupScheduleKind = "Invalid" + // BackupScheduleKindTimeBased Indicates a time-based backup schedule. + BackupScheduleKindTimeBased BackupScheduleKind = "TimeBased" +) + +// PossibleBackupScheduleKindValues returns an array of possible values for the BackupScheduleKind const type. +func PossibleBackupScheduleKindValues() []BackupScheduleKind { + return []BackupScheduleKind{BackupScheduleKindFrequencyBased, BackupScheduleKindInvalid, BackupScheduleKindTimeBased} +} + +// BackupState enumerates the values for backup state. +type BackupState string + +const ( + // BackupStateAccepted Operation has been validated and accepted. Backup is yet to be triggered. + BackupStateAccepted BackupState = "Accepted" + // BackupStateBackupInProgress Backup operation has been triggered and is under process. + BackupStateBackupInProgress BackupState = "BackupInProgress" + // BackupStateFailure Operation completed with failure. + BackupStateFailure BackupState = "Failure" + // BackupStateInvalid Indicates an invalid backup state. All Service Fabric enumerations have the invalid + // type. + BackupStateInvalid BackupState = "Invalid" + // BackupStateSuccess Operation completed with success. + BackupStateSuccess BackupState = "Success" + // BackupStateTimeout Operation timed out. + BackupStateTimeout BackupState = "Timeout" +) + +// PossibleBackupStateValues returns an array of possible values for the BackupState const type. +func PossibleBackupStateValues() []BackupState { + return []BackupState{BackupStateAccepted, BackupStateBackupInProgress, BackupStateFailure, BackupStateInvalid, BackupStateSuccess, BackupStateTimeout} +} + +// BackupStorageKind enumerates the values for backup storage kind. +type BackupStorageKind string + +const ( + // BackupStorageKindAzureBlobStore Indicates Azure blob store to be used as backup storage. + BackupStorageKindAzureBlobStore BackupStorageKind = "AzureBlobStore" + // BackupStorageKindFileShare Indicates file/ SMB share to be used as backup storage. + BackupStorageKindFileShare BackupStorageKind = "FileShare" + // BackupStorageKindInvalid Indicates an invalid backup storage kind. All Service Fabric enumerations have + // the invalid type. + BackupStorageKindInvalid BackupStorageKind = "Invalid" +) + +// PossibleBackupStorageKindValues returns an array of possible values for the BackupStorageKind const type. +func PossibleBackupStorageKindValues() []BackupStorageKind { + return []BackupStorageKind{BackupStorageKindAzureBlobStore, BackupStorageKindFileShare, BackupStorageKindInvalid} +} + +// BackupSuspensionScope enumerates the values for backup suspension scope. +type BackupSuspensionScope string + +const ( + // BackupSuspensionScopeApplication Indicates the backup suspension is applied at application level. All + // services and partitions of the application are hence suspended for backup. + BackupSuspensionScopeApplication BackupSuspensionScope = "Application" + // BackupSuspensionScopeInvalid Indicates an invalid backup suspension scope type also indicating entity is + // not suspended. All Service Fabric enumerations have the invalid type. + BackupSuspensionScopeInvalid BackupSuspensionScope = "Invalid" + // BackupSuspensionScopePartition Indicates the backup suspension is applied at partition level. + BackupSuspensionScopePartition BackupSuspensionScope = "Partition" + // BackupSuspensionScopeService Indicates the backup suspension is applied at service level. All partitions + // of the service are hence suspended for backup. + BackupSuspensionScopeService BackupSuspensionScope = "Service" +) + +// PossibleBackupSuspensionScopeValues returns an array of possible values for the BackupSuspensionScope const type. +func PossibleBackupSuspensionScopeValues() []BackupSuspensionScope { + return []BackupSuspensionScope{BackupSuspensionScopeApplication, BackupSuspensionScopeInvalid, BackupSuspensionScopePartition, BackupSuspensionScopeService} +} + +// BackupType enumerates the values for backup type. +type BackupType string + +const ( + // BackupTypeFull Indicates a full backup. + BackupTypeFull BackupType = "Full" + // BackupTypeIncremental Indicates an incremental backup. A backup chain is comprised of a full backup + // followed by 0 or more incremental backups. + BackupTypeIncremental BackupType = "Incremental" + // BackupTypeInvalid Indicates an invalid backup type. All Service Fabric enumerations have the invalid + // type. + BackupTypeInvalid BackupType = "Invalid" +) + +// PossibleBackupTypeValues returns an array of possible values for the BackupType const type. +func PossibleBackupTypeValues() []BackupType { + return []BackupType{BackupTypeFull, BackupTypeIncremental, BackupTypeInvalid} +} + +// ChaosEventKind enumerates the values for chaos event kind. +type ChaosEventKind string + +const ( + // ChaosEventKindExecutingFaults Indicates a Chaos event that gets generated when Chaos has decided on the + // faults for an iteration. This Chaos event contains the details of the faults as a list of strings. + ChaosEventKindExecutingFaults ChaosEventKind = "ExecutingFaults" + // ChaosEventKindInvalid Indicates an invalid Chaos event kind. All Service Fabric enumerations have the + // invalid type. + ChaosEventKindInvalid ChaosEventKind = "Invalid" + // ChaosEventKindStarted Indicates a Chaos event that gets generated when Chaos is started. + ChaosEventKindStarted ChaosEventKind = "Started" + // ChaosEventKindStopped Indicates a Chaos event that gets generated when Chaos stops because either the + // user issued a stop or the time to run was up. + ChaosEventKindStopped ChaosEventKind = "Stopped" + // ChaosEventKindTestError Indicates a Chaos event that gets generated when an unexpected event has + // occurred in the Chaos engine, for example, due to the cluster snapshot being inconsistent, while + // faulting a faultable entity Chaos found that the entity was already faulted. + ChaosEventKindTestError ChaosEventKind = "TestError" + // ChaosEventKindValidationFailed Indicates a Chaos event that gets generated when the cluster entities do + // not become stable and healthy within ChaosParameters.MaxClusterStabilizationTimeoutInSeconds. + ChaosEventKindValidationFailed ChaosEventKind = "ValidationFailed" + // ChaosEventKindWaiting Indicates a Chaos event that gets generated when Chaos is waiting for the cluster + // to become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish. + ChaosEventKindWaiting ChaosEventKind = "Waiting" +) + +// PossibleChaosEventKindValues returns an array of possible values for the ChaosEventKind const type. +func PossibleChaosEventKindValues() []ChaosEventKind { + return []ChaosEventKind{ChaosEventKindExecutingFaults, ChaosEventKindInvalid, ChaosEventKindStarted, ChaosEventKindStopped, ChaosEventKindTestError, ChaosEventKindValidationFailed, ChaosEventKindWaiting} +} + +// ChaosScheduleStatus enumerates the values for chaos schedule status. +type ChaosScheduleStatus string + +const ( + // ChaosScheduleStatusActive Indicates that the schedule is active and is being used to schedule runs of + // Chaos. The value is two. + ChaosScheduleStatusActive ChaosScheduleStatus = "Active" + // ChaosScheduleStatusExpired Indicates that the schedule is expired and will no longer be used to schedule + // runs of Chaos. The value is three. + ChaosScheduleStatusExpired ChaosScheduleStatus = "Expired" + // ChaosScheduleStatusInvalid Indicates an invalid Chaos Schedule status. All Service Fabric enumerations + // have the invalid type. The valus is zero. + ChaosScheduleStatusInvalid ChaosScheduleStatus = "Invalid" + // ChaosScheduleStatusPending Indicates that the schedule is pending and is not yet being used to schedule + // runs of Chaos but will be used when the start time is passed. The value is four. + ChaosScheduleStatusPending ChaosScheduleStatus = "Pending" + // ChaosScheduleStatusStopped Indicates that the schedule is stopped and not being used to schedule runs of + // chaos. The value is one. + ChaosScheduleStatusStopped ChaosScheduleStatus = "Stopped" +) + +// PossibleChaosScheduleStatusValues returns an array of possible values for the ChaosScheduleStatus const type. +func PossibleChaosScheduleStatusValues() []ChaosScheduleStatus { + return []ChaosScheduleStatus{ChaosScheduleStatusActive, ChaosScheduleStatusExpired, ChaosScheduleStatusInvalid, ChaosScheduleStatusPending, ChaosScheduleStatusStopped} +} + +// ChaosStatus enumerates the values for chaos status. +type ChaosStatus string + +const ( + // ChaosStatusInvalid Indicates an invalid Chaos status. All Service Fabric enumerations have the invalid + // type. The valus is zero. + ChaosStatusInvalid ChaosStatus = "Invalid" + // ChaosStatusRunning Indicates that Chaos is not stopped. The value is one. + ChaosStatusRunning ChaosStatus = "Running" + // ChaosStatusStopped Indicates that Chaos is not scheduling further faults. The value is two. + ChaosStatusStopped ChaosStatus = "Stopped" +) + +// PossibleChaosStatusValues returns an array of possible values for the ChaosStatus const type. +func PossibleChaosStatusValues() []ChaosStatus { + return []ChaosStatus{ChaosStatusInvalid, ChaosStatusRunning, ChaosStatusStopped} +} + +// ComposeDeploymentStatus enumerates the values for compose deployment status. +type ComposeDeploymentStatus string + +const ( + // ComposeDeploymentStatusCreating Indicates that the compose deployment is being created in background. + // The value is 2. + ComposeDeploymentStatusCreating ComposeDeploymentStatus = "Creating" + // ComposeDeploymentStatusDeleting Indicates that the compose deployment is being deleted in background. + // The value is 5. + ComposeDeploymentStatusDeleting ComposeDeploymentStatus = "Deleting" + // ComposeDeploymentStatusFailed Indicates that the compose deployment was terminated due to persistent + // failures. The value is 6. + ComposeDeploymentStatusFailed ComposeDeploymentStatus = "Failed" + // ComposeDeploymentStatusInvalid Indicates that the compose deployment status is invalid. The value is + // zero. + ComposeDeploymentStatusInvalid ComposeDeploymentStatus = "Invalid" + // ComposeDeploymentStatusProvisioning Indicates that the compose deployment is being provisioned in + // background. The value is 1. + ComposeDeploymentStatusProvisioning ComposeDeploymentStatus = "Provisioning" + // ComposeDeploymentStatusReady Indicates that the compose deployment has been successfully created or + // upgraded. The value is 3. + ComposeDeploymentStatusReady ComposeDeploymentStatus = "Ready" + // ComposeDeploymentStatusUnprovisioning Indicates that the compose deployment is being unprovisioned in + // background. The value is 4. + ComposeDeploymentStatusUnprovisioning ComposeDeploymentStatus = "Unprovisioning" + // ComposeDeploymentStatusUpgrading Indicates that the compose deployment is being upgraded in the + // background. The value is 7. + ComposeDeploymentStatusUpgrading ComposeDeploymentStatus = "Upgrading" +) + +// PossibleComposeDeploymentStatusValues returns an array of possible values for the ComposeDeploymentStatus const type. +func PossibleComposeDeploymentStatusValues() []ComposeDeploymentStatus { + return []ComposeDeploymentStatus{ComposeDeploymentStatusCreating, ComposeDeploymentStatusDeleting, ComposeDeploymentStatusFailed, ComposeDeploymentStatusInvalid, ComposeDeploymentStatusProvisioning, ComposeDeploymentStatusReady, ComposeDeploymentStatusUnprovisioning, ComposeDeploymentStatusUpgrading} +} + +// ComposeDeploymentUpgradeState enumerates the values for compose deployment upgrade state. +type ComposeDeploymentUpgradeState string + +const ( + // ComposeDeploymentUpgradeStateFailed The upgrade has failed and is unable to execute FailureAction. The + // value is 9. + ComposeDeploymentUpgradeStateFailed ComposeDeploymentUpgradeState = "Failed" + // ComposeDeploymentUpgradeStateInvalid Indicates the upgrade state is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ComposeDeploymentUpgradeStateInvalid ComposeDeploymentUpgradeState = "Invalid" + // ComposeDeploymentUpgradeStateProvisioningTarget The upgrade is in the progress of provisioning target + // application type version. The value is 1. + ComposeDeploymentUpgradeStateProvisioningTarget ComposeDeploymentUpgradeState = "ProvisioningTarget" + // ComposeDeploymentUpgradeStateRollingBackCompleted The upgrade has finished rolling back. The value is 8. + ComposeDeploymentUpgradeStateRollingBackCompleted ComposeDeploymentUpgradeState = "RollingBackCompleted" + // ComposeDeploymentUpgradeStateRollingBackInProgress The upgrade is rolling back to the previous version + // but is not complete yet. The value is 6. + ComposeDeploymentUpgradeStateRollingBackInProgress ComposeDeploymentUpgradeState = "RollingBackInProgress" + // ComposeDeploymentUpgradeStateRollingForwardCompleted The upgrade has finished rolling forward. The value + // is 5. + ComposeDeploymentUpgradeStateRollingForwardCompleted ComposeDeploymentUpgradeState = "RollingForwardCompleted" + // ComposeDeploymentUpgradeStateRollingForwardInProgress The upgrade is rolling forward to the target + // version but is not complete yet. The value is 2. + ComposeDeploymentUpgradeStateRollingForwardInProgress ComposeDeploymentUpgradeState = "RollingForwardInProgress" + // ComposeDeploymentUpgradeStateRollingForwardPending The current upgrade domain has finished upgrading. + // The overall upgrade is waiting for an explicit move next request in UnmonitoredManual mode or performing + // health checks in Monitored mode. The value is 3 + ComposeDeploymentUpgradeStateRollingForwardPending ComposeDeploymentUpgradeState = "RollingForwardPending" + // ComposeDeploymentUpgradeStateUnprovisioningCurrent The upgrade is in the progress of unprovisioning + // current application type version and rolling forward to the target version is completed. The value is 4. + ComposeDeploymentUpgradeStateUnprovisioningCurrent ComposeDeploymentUpgradeState = "UnprovisioningCurrent" + // ComposeDeploymentUpgradeStateUnprovisioningTarget The upgrade is in the progress of unprovisioning + // target application type version and rolling back to the current version is completed. The value is 7. + ComposeDeploymentUpgradeStateUnprovisioningTarget ComposeDeploymentUpgradeState = "UnprovisioningTarget" +) + +// PossibleComposeDeploymentUpgradeStateValues returns an array of possible values for the ComposeDeploymentUpgradeState const type. +func PossibleComposeDeploymentUpgradeStateValues() []ComposeDeploymentUpgradeState { + return []ComposeDeploymentUpgradeState{ComposeDeploymentUpgradeStateFailed, ComposeDeploymentUpgradeStateInvalid, ComposeDeploymentUpgradeStateProvisioningTarget, ComposeDeploymentUpgradeStateRollingBackCompleted, ComposeDeploymentUpgradeStateRollingBackInProgress, ComposeDeploymentUpgradeStateRollingForwardCompleted, ComposeDeploymentUpgradeStateRollingForwardInProgress, ComposeDeploymentUpgradeStateRollingForwardPending, ComposeDeploymentUpgradeStateUnprovisioningCurrent, ComposeDeploymentUpgradeStateUnprovisioningTarget} +} + +// CreateFabricDump enumerates the values for create fabric dump. +type CreateFabricDump string + +const ( + // False ... + False CreateFabricDump = "False" + // True ... + True CreateFabricDump = "True" +) + +// PossibleCreateFabricDumpValues returns an array of possible values for the CreateFabricDump const type. +func PossibleCreateFabricDumpValues() []CreateFabricDump { + return []CreateFabricDump{False, True} +} + +// DataLossMode enumerates the values for data loss mode. +type DataLossMode string + +const ( + // DataLossModeFullDataLoss FullDataLoss option will drop all the replicas which means that all the data + // will be lost. + DataLossModeFullDataLoss DataLossMode = "FullDataLoss" + // DataLossModeInvalid Reserved. Do not pass into API. + DataLossModeInvalid DataLossMode = "Invalid" + // DataLossModePartialDataLoss PartialDataLoss option will cause a quorum of replicas to go down, + // triggering an OnDataLoss event in the system for the given partition. + DataLossModePartialDataLoss DataLossMode = "PartialDataLoss" +) + +// PossibleDataLossModeValues returns an array of possible values for the DataLossMode const type. +func PossibleDataLossModeValues() []DataLossMode { + return []DataLossMode{DataLossModeFullDataLoss, DataLossModeInvalid, DataLossModePartialDataLoss} +} + +// DayOfWeek enumerates the values for day of week. +type DayOfWeek string + +const ( + // Friday Indicates the Day referred is Friday. + Friday DayOfWeek = "Friday" + // Monday Indicates the Day referred is Monday. + Monday DayOfWeek = "Monday" + // Saturday Indicates the Day referred is Saturday. + Saturday DayOfWeek = "Saturday" + // Sunday Indicates the Day referred is Sunday. + Sunday DayOfWeek = "Sunday" + // Thursday Indicates the Day referred is Thursday. + Thursday DayOfWeek = "Thursday" + // Tuesday Indicates the Day referred is Tuesday. + Tuesday DayOfWeek = "Tuesday" + // Wednesday Indicates the Day referred is Wednesday. + Wednesday DayOfWeek = "Wednesday" +) + +// PossibleDayOfWeekValues returns an array of possible values for the DayOfWeek const type. +func PossibleDayOfWeekValues() []DayOfWeek { + return []DayOfWeek{Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday} +} + +// DeactivationIntent enumerates the values for deactivation intent. +type DeactivationIntent string + +const ( + // Pause Indicates that the node should be paused. The value is 1. + Pause DeactivationIntent = "Pause" + // RemoveData Indicates the intent is for the node to remove data. The value is 3. + RemoveData DeactivationIntent = "RemoveData" + // Restart Indicates that the intent is for the node to be restarted after a short period of time. The + // value is 2. + Restart DeactivationIntent = "Restart" +) + +// PossibleDeactivationIntentValues returns an array of possible values for the DeactivationIntent const type. +func PossibleDeactivationIntentValues() []DeactivationIntent { + return []DeactivationIntent{Pause, RemoveData, Restart} +} + +// DeployedApplicationStatus enumerates the values for deployed application status. +type DeployedApplicationStatus string + +const ( + // DeployedApplicationStatusActivating Indicates that the package is activating. The value is 2. + DeployedApplicationStatusActivating DeployedApplicationStatus = "Activating" + // DeployedApplicationStatusActive Indicates that the package is active. The value is 3. + DeployedApplicationStatusActive DeployedApplicationStatus = "Active" + // DeployedApplicationStatusDeactivating Indicates that the package is deactivating. The value is 5. + DeployedApplicationStatusDeactivating DeployedApplicationStatus = "Deactivating" + // DeployedApplicationStatusDownloading Indicates that the package is downloading from the ImageStore. The + // value is 1. + DeployedApplicationStatusDownloading DeployedApplicationStatus = "Downloading" + // DeployedApplicationStatusInvalid Indicates that deployment status is not valid. All Service Fabric + // enumerations have the invalid type. The value is zero. + DeployedApplicationStatusInvalid DeployedApplicationStatus = "Invalid" + // DeployedApplicationStatusUpgrading Indicates that the package is upgrading. The value is 4. + DeployedApplicationStatusUpgrading DeployedApplicationStatus = "Upgrading" +) + +// PossibleDeployedApplicationStatusValues returns an array of possible values for the DeployedApplicationStatus const type. +func PossibleDeployedApplicationStatusValues() []DeployedApplicationStatus { + return []DeployedApplicationStatus{DeployedApplicationStatusActivating, DeployedApplicationStatusActive, DeployedApplicationStatusDeactivating, DeployedApplicationStatusDownloading, DeployedApplicationStatusInvalid, DeployedApplicationStatusUpgrading} +} + +// DeploymentStatus enumerates the values for deployment status. +type DeploymentStatus string + +const ( + // DeploymentStatusActivating Indicates the application or service package is being activated. The value is + // 2. + DeploymentStatusActivating DeploymentStatus = "Activating" + // DeploymentStatusActive Indicates the application or service package is active the node. The value is 3. + DeploymentStatusActive DeploymentStatus = "Active" + // DeploymentStatusDeactivating Indicates the application or service package is being deactivated. The + // value is 5. + DeploymentStatusDeactivating DeploymentStatus = "Deactivating" + // DeploymentStatusDownloading Indicates the application or service package is being downloaded to the node + // from the ImageStore. The value is 1. + DeploymentStatusDownloading DeploymentStatus = "Downloading" + // DeploymentStatusInvalid Indicates status of the application or service package is not known or invalid. + // The value is 0. + DeploymentStatusInvalid DeploymentStatus = "Invalid" + // DeploymentStatusUpgrading Indicates the application or service package is being upgraded. The value is + // 4. + DeploymentStatusUpgrading DeploymentStatus = "Upgrading" +) + +// PossibleDeploymentStatusValues returns an array of possible values for the DeploymentStatus const type. +func PossibleDeploymentStatusValues() []DeploymentStatus { + return []DeploymentStatus{DeploymentStatusActivating, DeploymentStatusActive, DeploymentStatusDeactivating, DeploymentStatusDownloading, DeploymentStatusInvalid, DeploymentStatusUpgrading} +} + +// DiagnosticsSinkKind enumerates the values for diagnostics sink kind. +type DiagnosticsSinkKind string + +const ( + // DiagnosticsSinkKindAzureInternalMonitoringPipeline Diagnostics settings for Geneva. + DiagnosticsSinkKindAzureInternalMonitoringPipeline DiagnosticsSinkKind = "AzureInternalMonitoringPipeline" + // DiagnosticsSinkKindInvalid Indicates an invalid sink kind. All Service Fabric enumerations have the + // invalid type. + DiagnosticsSinkKindInvalid DiagnosticsSinkKind = "Invalid" +) + +// PossibleDiagnosticsSinkKindValues returns an array of possible values for the DiagnosticsSinkKind const type. +func PossibleDiagnosticsSinkKindValues() []DiagnosticsSinkKind { + return []DiagnosticsSinkKind{DiagnosticsSinkKindAzureInternalMonitoringPipeline, DiagnosticsSinkKindInvalid} +} + +// EntityKind enumerates the values for entity kind. +type EntityKind string + +const ( + // EntityKindApplication Indicates the entity is a Service Fabric application. The value is 4. + EntityKindApplication EntityKind = "Application" + // EntityKindCluster Indicates the entity is a Service Fabric cluster. The value is 8. + EntityKindCluster EntityKind = "Cluster" + // EntityKindDeployedApplication Indicates the entity is a Service Fabric deployed application. The value + // is 6. + EntityKindDeployedApplication EntityKind = "DeployedApplication" + // EntityKindDeployedServicePackage Indicates the entity is a Service Fabric deployed service package. The + // value is 7. + EntityKindDeployedServicePackage EntityKind = "DeployedServicePackage" + // EntityKindInvalid Indicates an invalid entity kind. All Service Fabric enumerations have the invalid + // type. The value is zero. + EntityKindInvalid EntityKind = "Invalid" + // EntityKindNode Indicates the entity is a Service Fabric node. The value is 1. + EntityKindNode EntityKind = "Node" + // EntityKindPartition Indicates the entity is a Service Fabric partition. The value is 2. + EntityKindPartition EntityKind = "Partition" + // EntityKindReplica Indicates the entity is a Service Fabric replica. The value is 5. + EntityKindReplica EntityKind = "Replica" + // EntityKindService Indicates the entity is a Service Fabric service. The value is 3. + EntityKindService EntityKind = "Service" +) + +// PossibleEntityKindValues returns an array of possible values for the EntityKind const type. +func PossibleEntityKindValues() []EntityKind { + return []EntityKind{EntityKindApplication, EntityKindCluster, EntityKindDeployedApplication, EntityKindDeployedServicePackage, EntityKindInvalid, EntityKindNode, EntityKindPartition, EntityKindReplica, EntityKindService} +} + +// EntityKindBasicBackupEntity enumerates the values for entity kind basic backup entity. +type EntityKindBasicBackupEntity string + +const ( + // EntityKindApplication1 ... + EntityKindApplication1 EntityKindBasicBackupEntity = "Application" + // EntityKindBackupEntity ... + EntityKindBackupEntity EntityKindBasicBackupEntity = "BackupEntity" + // EntityKindPartition1 ... + EntityKindPartition1 EntityKindBasicBackupEntity = "Partition" + // EntityKindService1 ... + EntityKindService1 EntityKindBasicBackupEntity = "Service" +) + +// PossibleEntityKindBasicBackupEntityValues returns an array of possible values for the EntityKindBasicBackupEntity const type. +func PossibleEntityKindBasicBackupEntityValues() []EntityKindBasicBackupEntity { + return []EntityKindBasicBackupEntity{EntityKindApplication1, EntityKindBackupEntity, EntityKindPartition1, EntityKindService1} +} + +// EntryPointStatus enumerates the values for entry point status. +type EntryPointStatus string + +const ( + // EntryPointStatusInvalid Indicates status of entry point is not known or invalid. The value is 0. + EntryPointStatusInvalid EntryPointStatus = "Invalid" + // EntryPointStatusPending Indicates the entry point is scheduled to be started. The value is 1. + EntryPointStatusPending EntryPointStatus = "Pending" + // EntryPointStatusStarted Indicates the entry point was started successfully and is running. The value is + // 3. + EntryPointStatusStarted EntryPointStatus = "Started" + // EntryPointStatusStarting Indicates the entry point is being started. The value is 2. + EntryPointStatusStarting EntryPointStatus = "Starting" + // EntryPointStatusStopped Indicates the entry point is not running. The value is 5. + EntryPointStatusStopped EntryPointStatus = "Stopped" + // EntryPointStatusStopping Indicates the entry point is being stopped. The value is 4. + EntryPointStatusStopping EntryPointStatus = "Stopping" +) + +// PossibleEntryPointStatusValues returns an array of possible values for the EntryPointStatus const type. +func PossibleEntryPointStatusValues() []EntryPointStatus { + return []EntryPointStatus{EntryPointStatusInvalid, EntryPointStatusPending, EntryPointStatusStarted, EntryPointStatusStarting, EntryPointStatusStopped, EntryPointStatusStopping} +} + +// FabricErrorCodes enumerates the values for fabric error codes. +type FabricErrorCodes string + +const ( + // EABORT ... + EABORT FabricErrorCodes = "E_ABORT" + // EFAIL ... + EFAIL FabricErrorCodes = "E_FAIL" + // EINVALIDARG ... + EINVALIDARG FabricErrorCodes = "E_INVALIDARG" + // FABRICEAPPLICATIONALREADYEXISTS ... + FABRICEAPPLICATIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_APPLICATION_ALREADY_EXISTS" + // FABRICEAPPLICATIONALREADYINTARGETVERSION ... + FABRICEAPPLICATIONALREADYINTARGETVERSION FabricErrorCodes = "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION" + // FABRICEAPPLICATIONNOTFOUND ... + FABRICEAPPLICATIONNOTFOUND FabricErrorCodes = "FABRIC_E_APPLICATION_NOT_FOUND" + // FABRICEAPPLICATIONNOTUPGRADING ... + FABRICEAPPLICATIONNOTUPGRADING FabricErrorCodes = "FABRIC_E_APPLICATION_NOT_UPGRADING" + // FABRICEAPPLICATIONTYPEALREADYEXISTS ... + FABRICEAPPLICATIONTYPEALREADYEXISTS FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS" + // FABRICEAPPLICATIONTYPEINUSE ... + FABRICEAPPLICATIONTYPEINUSE FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_IN_USE" + // FABRICEAPPLICATIONTYPENOTFOUND ... + FABRICEAPPLICATIONTYPENOTFOUND FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_NOT_FOUND" + // FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS ... + FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS FabricErrorCodes = "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS" + // FABRICEAPPLICATIONUPGRADEINPROGRESS ... + FABRICEAPPLICATIONUPGRADEINPROGRESS FabricErrorCodes = "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS" + // FABRICEAPPLICATIONUPGRADEVALIDATIONERROR ... + FABRICEAPPLICATIONUPGRADEVALIDATIONERROR FabricErrorCodes = "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR" + // FABRICEBACKUPINPROGRESS ... + FABRICEBACKUPINPROGRESS FabricErrorCodes = "FABRIC_E_BACKUP_IN_PROGRESS" + // FABRICEBACKUPISENABLED ... + FABRICEBACKUPISENABLED FabricErrorCodes = "FABRIC_E_BACKUP_IS_ENABLED" + // FABRICEBACKUPNOTENABLED ... + FABRICEBACKUPNOTENABLED FabricErrorCodes = "FABRIC_E_BACKUP_NOT_ENABLED" + // FABRICEBACKUPPOLICYALREADYEXISTING ... + FABRICEBACKUPPOLICYALREADYEXISTING FabricErrorCodes = "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING" + // FABRICEBACKUPPOLICYNOTEXISTING ... + FABRICEBACKUPPOLICYNOTEXISTING FabricErrorCodes = "FABRIC_E_BACKUP_POLICY_NOT_EXISTING" + // FABRICECOMMUNICATIONERROR ... + FABRICECOMMUNICATIONERROR FabricErrorCodes = "FABRIC_E_COMMUNICATION_ERROR" + // FABRICECONFIGURATIONPARAMETERNOTFOUND ... + FABRICECONFIGURATIONPARAMETERNOTFOUND FabricErrorCodes = "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND" + // FABRICECONFIGURATIONSECTIONNOTFOUND ... + FABRICECONFIGURATIONSECTIONNOTFOUND FabricErrorCodes = "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND" + // FABRICEDIRECTORYNOTFOUND ... + FABRICEDIRECTORYNOTFOUND FabricErrorCodes = "FABRIC_E_DIRECTORY_NOT_FOUND" + // FABRICEENUMERATIONCOMPLETED ... + FABRICEENUMERATIONCOMPLETED FabricErrorCodes = "FABRIC_E_ENUMERATION_COMPLETED" + // FABRICEFABRICALREADYINTARGETVERSION ... + FABRICEFABRICALREADYINTARGETVERSION FabricErrorCodes = "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION" + // FABRICEFABRICNOTUPGRADING ... + FABRICEFABRICNOTUPGRADING FabricErrorCodes = "FABRIC_E_FABRIC_NOT_UPGRADING" + // FABRICEFABRICUPGRADEINPROGRESS ... + FABRICEFABRICUPGRADEINPROGRESS FabricErrorCodes = "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS" + // FABRICEFABRICUPGRADEVALIDATIONERROR ... + FABRICEFABRICUPGRADEVALIDATIONERROR FabricErrorCodes = "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR" + // FABRICEFABRICVERSIONALREADYEXISTS ... + FABRICEFABRICVERSIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS" + // FABRICEFABRICVERSIONINUSE ... + FABRICEFABRICVERSIONINUSE FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_IN_USE" + // FABRICEFABRICVERSIONNOTFOUND ... + FABRICEFABRICVERSIONNOTFOUND FabricErrorCodes = "FABRIC_E_FABRIC_VERSION_NOT_FOUND" + // FABRICEFAULTANALYSISSERVICENOTEXISTING ... + FABRICEFAULTANALYSISSERVICENOTEXISTING FabricErrorCodes = "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING" + // FABRICEFILENOTFOUND ... + FABRICEFILENOTFOUND FabricErrorCodes = "FABRIC_E_FILE_NOT_FOUND" + // FABRICEHEALTHENTITYNOTFOUND ... + FABRICEHEALTHENTITYNOTFOUND FabricErrorCodes = "FABRIC_E_HEALTH_ENTITY_NOT_FOUND" + // FABRICEHEALTHSTALEREPORT ... + FABRICEHEALTHSTALEREPORT FabricErrorCodes = "FABRIC_E_HEALTH_STALE_REPORT" + // FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR ... + FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR FabricErrorCodes = "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR" + // FABRICEIMAGEBUILDERVALIDATIONERROR ... + FABRICEIMAGEBUILDERVALIDATIONERROR FabricErrorCodes = "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR" + // FABRICEINSTANCEIDMISMATCH ... + FABRICEINSTANCEIDMISMATCH FabricErrorCodes = "FABRIC_E_INSTANCE_ID_MISMATCH" + // FABRICEINVALIDADDRESS ... + FABRICEINVALIDADDRESS FabricErrorCodes = "FABRIC_E_INVALID_ADDRESS" + // FABRICEINVALIDATOMICGROUP ... + FABRICEINVALIDATOMICGROUP FabricErrorCodes = "FABRIC_E_INVALID_ATOMIC_GROUP" + // FABRICEINVALIDCONFIGURATION ... + FABRICEINVALIDCONFIGURATION FabricErrorCodes = "FABRIC_E_INVALID_CONFIGURATION" + // FABRICEINVALIDFORSTATELESSSERVICES ... + FABRICEINVALIDFORSTATELESSSERVICES FabricErrorCodes = "FABRIC_E_INVALID_FOR_STATELESS_SERVICES" + // FABRICEINVALIDNAMEURI ... + FABRICEINVALIDNAMEURI FabricErrorCodes = "FABRIC_E_INVALID_NAME_URI" + // FABRICEINVALIDPARTITIONKEY ... + FABRICEINVALIDPARTITIONKEY FabricErrorCodes = "FABRIC_E_INVALID_PARTITION_KEY" + // FABRICEINVALIDSERVICESCALINGPOLICY ... + FABRICEINVALIDSERVICESCALINGPOLICY FabricErrorCodes = "FABRIC_E_INVALID_SERVICE_SCALING_POLICY" + // FABRICEKEYNOTFOUND ... + FABRICEKEYNOTFOUND FabricErrorCodes = "FABRIC_E_KEY_NOT_FOUND" + // FABRICEKEYTOOLARGE ... + FABRICEKEYTOOLARGE FabricErrorCodes = "FABRIC_E_KEY_TOO_LARGE" + // FABRICENAMEALREADYEXISTS ... + FABRICENAMEALREADYEXISTS FabricErrorCodes = "FABRIC_E_NAME_ALREADY_EXISTS" + // FABRICENAMEDOESNOTEXIST ... + FABRICENAMEDOESNOTEXIST FabricErrorCodes = "FABRIC_E_NAME_DOES_NOT_EXIST" + // FABRICENAMENOTEMPTY ... + FABRICENAMENOTEMPTY FabricErrorCodes = "FABRIC_E_NAME_NOT_EMPTY" + // FABRICENODEHASNOTSTOPPEDYET ... + FABRICENODEHASNOTSTOPPEDYET FabricErrorCodes = "FABRIC_E_NODE_HAS_NOT_STOPPED_YET" + // FABRICENODEISUP ... + FABRICENODEISUP FabricErrorCodes = "FABRIC_E_NODE_IS_UP" + // FABRICENODENOTFOUND ... + FABRICENODENOTFOUND FabricErrorCodes = "FABRIC_E_NODE_NOT_FOUND" + // FABRICENOTPRIMARY ... + FABRICENOTPRIMARY FabricErrorCodes = "FABRIC_E_NOT_PRIMARY" + // FABRICENOTREADY ... + FABRICENOTREADY FabricErrorCodes = "FABRIC_E_NOT_READY" + // FABRICENOWRITEQUORUM ... + FABRICENOWRITEQUORUM FabricErrorCodes = "FABRIC_E_NO_WRITE_QUORUM" + // FABRICEOPERATIONNOTCOMPLETE ... + FABRICEOPERATIONNOTCOMPLETE FabricErrorCodes = "FABRIC_E_OPERATION_NOT_COMPLETE" + // FABRICEPARTITIONNOTFOUND ... + FABRICEPARTITIONNOTFOUND FabricErrorCodes = "FABRIC_E_PARTITION_NOT_FOUND" + // FABRICEPATHTOOLONG ... + FABRICEPATHTOOLONG FabricErrorCodes = "FABRIC_E_PATH_TOO_LONG" + // FABRICEPROPERTYCHECKFAILED ... + FABRICEPROPERTYCHECKFAILED FabricErrorCodes = "FABRIC_E_PROPERTY_CHECK_FAILED" + // FABRICEPROPERTYDOESNOTEXIST ... + FABRICEPROPERTYDOESNOTEXIST FabricErrorCodes = "FABRIC_E_PROPERTY_DOES_NOT_EXIST" + // FABRICERECONFIGURATIONPENDING ... + FABRICERECONFIGURATIONPENDING FabricErrorCodes = "FABRIC_E_RECONFIGURATION_PENDING" + // FABRICEREPLICADOESNOTEXIST ... + FABRICEREPLICADOESNOTEXIST FabricErrorCodes = "FABRIC_E_REPLICA_DOES_NOT_EXIST" + // FABRICERESTOREINPROGRESS ... + FABRICERESTOREINPROGRESS FabricErrorCodes = "FABRIC_E_RESTORE_IN_PROGRESS" + // FABRICERESTORESOURCETARGETPARTITIONMISMATCH ... + FABRICERESTORESOURCETARGETPARTITIONMISMATCH FabricErrorCodes = "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH" + // FABRICESEQUENCENUMBERCHECKFAILED ... + FABRICESEQUENCENUMBERCHECKFAILED FabricErrorCodes = "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED" + // FABRICESERVICEAFFINITYCHAINNOTSUPPORTED ... + FABRICESERVICEAFFINITYCHAINNOTSUPPORTED FabricErrorCodes = "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED" + // FABRICESERVICEALREADYEXISTS ... + FABRICESERVICEALREADYEXISTS FabricErrorCodes = "FABRIC_E_SERVICE_ALREADY_EXISTS" + // FABRICESERVICEDOESNOTEXIST ... + FABRICESERVICEDOESNOTEXIST FabricErrorCodes = "FABRIC_E_SERVICE_DOES_NOT_EXIST" + // FABRICESERVICEGROUPALREADYEXISTS ... + FABRICESERVICEGROUPALREADYEXISTS FabricErrorCodes = "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS" + // FABRICESERVICEGROUPDOESNOTEXIST ... + FABRICESERVICEGROUPDOESNOTEXIST FabricErrorCodes = "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST" + // FABRICESERVICEMANIFESTNOTFOUND ... + FABRICESERVICEMANIFESTNOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND" + // FABRICESERVICEMETADATAMISMATCH ... + FABRICESERVICEMETADATAMISMATCH FabricErrorCodes = "FABRIC_E_SERVICE_METADATA_MISMATCH" + // FABRICESERVICEOFFLINE ... + FABRICESERVICEOFFLINE FabricErrorCodes = "FABRIC_E_SERVICE_OFFLINE" + // FABRICESERVICETYPEMISMATCH ... + FABRICESERVICETYPEMISMATCH FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_MISMATCH" + // FABRICESERVICETYPENOTFOUND ... + FABRICESERVICETYPENOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_NOT_FOUND" + // FABRICESERVICETYPETEMPLATENOTFOUND ... + FABRICESERVICETYPETEMPLATENOTFOUND FabricErrorCodes = "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND" + // FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS ... + FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS FabricErrorCodes = "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS" + // FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND ... + FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND FabricErrorCodes = "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND" + // FABRICETIMEOUT ... + FABRICETIMEOUT FabricErrorCodes = "FABRIC_E_TIMEOUT" + // FABRICEVALUEEMPTY ... + FABRICEVALUEEMPTY FabricErrorCodes = "FABRIC_E_VALUE_EMPTY" + // FABRICEVALUETOOLARGE ... + FABRICEVALUETOOLARGE FabricErrorCodes = "FABRIC_E_VALUE_TOO_LARGE" + // FABRICEVOLUMEALREADYEXISTS ... + FABRICEVOLUMEALREADYEXISTS FabricErrorCodes = "FABRIC_E_VOLUME_ALREADY_EXISTS" + // FABRICEVOLUMENOTFOUND ... + FABRICEVOLUMENOTFOUND FabricErrorCodes = "FABRIC_E_VOLUME_NOT_FOUND" + // SerializationError ... + SerializationError FabricErrorCodes = "SerializationError" +) + +// PossibleFabricErrorCodesValues returns an array of possible values for the FabricErrorCodes const type. +func PossibleFabricErrorCodesValues() []FabricErrorCodes { + return []FabricErrorCodes{EABORT, EFAIL, EINVALIDARG, FABRICEAPPLICATIONALREADYEXISTS, FABRICEAPPLICATIONALREADYINTARGETVERSION, FABRICEAPPLICATIONNOTFOUND, FABRICEAPPLICATIONNOTUPGRADING, FABRICEAPPLICATIONTYPEALREADYEXISTS, FABRICEAPPLICATIONTYPEINUSE, FABRICEAPPLICATIONTYPENOTFOUND, FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS, FABRICEAPPLICATIONUPGRADEINPROGRESS, FABRICEAPPLICATIONUPGRADEVALIDATIONERROR, FABRICEBACKUPINPROGRESS, FABRICEBACKUPISENABLED, FABRICEBACKUPNOTENABLED, FABRICEBACKUPPOLICYALREADYEXISTING, FABRICEBACKUPPOLICYNOTEXISTING, FABRICECOMMUNICATIONERROR, FABRICECONFIGURATIONPARAMETERNOTFOUND, FABRICECONFIGURATIONSECTIONNOTFOUND, FABRICEDIRECTORYNOTFOUND, FABRICEENUMERATIONCOMPLETED, FABRICEFABRICALREADYINTARGETVERSION, FABRICEFABRICNOTUPGRADING, FABRICEFABRICUPGRADEINPROGRESS, FABRICEFABRICUPGRADEVALIDATIONERROR, FABRICEFABRICVERSIONALREADYEXISTS, FABRICEFABRICVERSIONINUSE, FABRICEFABRICVERSIONNOTFOUND, FABRICEFAULTANALYSISSERVICENOTEXISTING, FABRICEFILENOTFOUND, FABRICEHEALTHENTITYNOTFOUND, FABRICEHEALTHSTALEREPORT, FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR, FABRICEIMAGEBUILDERVALIDATIONERROR, FABRICEINSTANCEIDMISMATCH, FABRICEINVALIDADDRESS, FABRICEINVALIDATOMICGROUP, FABRICEINVALIDCONFIGURATION, FABRICEINVALIDFORSTATELESSSERVICES, FABRICEINVALIDNAMEURI, FABRICEINVALIDPARTITIONKEY, FABRICEINVALIDSERVICESCALINGPOLICY, FABRICEKEYNOTFOUND, FABRICEKEYTOOLARGE, FABRICENAMEALREADYEXISTS, FABRICENAMEDOESNOTEXIST, FABRICENAMENOTEMPTY, FABRICENODEHASNOTSTOPPEDYET, FABRICENODEISUP, FABRICENODENOTFOUND, FABRICENOTPRIMARY, FABRICENOTREADY, FABRICENOWRITEQUORUM, FABRICEOPERATIONNOTCOMPLETE, FABRICEPARTITIONNOTFOUND, FABRICEPATHTOOLONG, FABRICEPROPERTYCHECKFAILED, FABRICEPROPERTYDOESNOTEXIST, FABRICERECONFIGURATIONPENDING, FABRICEREPLICADOESNOTEXIST, FABRICERESTOREINPROGRESS, FABRICERESTORESOURCETARGETPARTITIONMISMATCH, FABRICESEQUENCENUMBERCHECKFAILED, FABRICESERVICEAFFINITYCHAINNOTSUPPORTED, FABRICESERVICEALREADYEXISTS, FABRICESERVICEDOESNOTEXIST, FABRICESERVICEGROUPALREADYEXISTS, FABRICESERVICEGROUPDOESNOTEXIST, FABRICESERVICEMANIFESTNOTFOUND, FABRICESERVICEMETADATAMISMATCH, FABRICESERVICEOFFLINE, FABRICESERVICETYPEMISMATCH, FABRICESERVICETYPENOTFOUND, FABRICESERVICETYPETEMPLATENOTFOUND, FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS, FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND, FABRICETIMEOUT, FABRICEVALUEEMPTY, FABRICEVALUETOOLARGE, FABRICEVOLUMEALREADYEXISTS, FABRICEVOLUMENOTFOUND, SerializationError} +} + +// FabricEventKind enumerates the values for fabric event kind. +type FabricEventKind string + +const ( + // FabricEventKindApplicationContainerInstanceExited ... + FabricEventKindApplicationContainerInstanceExited FabricEventKind = "ApplicationContainerInstanceExited" + // FabricEventKindApplicationCreated ... + FabricEventKindApplicationCreated FabricEventKind = "ApplicationCreated" + // FabricEventKindApplicationDeleted ... + FabricEventKindApplicationDeleted FabricEventKind = "ApplicationDeleted" + // FabricEventKindApplicationEvent ... + FabricEventKindApplicationEvent FabricEventKind = "ApplicationEvent" + // FabricEventKindApplicationHealthReportExpired ... + FabricEventKindApplicationHealthReportExpired FabricEventKind = "ApplicationHealthReportExpired" + // FabricEventKindApplicationNewHealthReport ... + FabricEventKindApplicationNewHealthReport FabricEventKind = "ApplicationNewHealthReport" + // FabricEventKindApplicationProcessExited ... + FabricEventKindApplicationProcessExited FabricEventKind = "ApplicationProcessExited" + // FabricEventKindApplicationUpgradeCompleted ... + FabricEventKindApplicationUpgradeCompleted FabricEventKind = "ApplicationUpgradeCompleted" + // FabricEventKindApplicationUpgradeDomainCompleted ... + FabricEventKindApplicationUpgradeDomainCompleted FabricEventKind = "ApplicationUpgradeDomainCompleted" + // FabricEventKindApplicationUpgradeRollbackCompleted ... + FabricEventKindApplicationUpgradeRollbackCompleted FabricEventKind = "ApplicationUpgradeRollbackCompleted" + // FabricEventKindApplicationUpgradeRollbackStarted ... + FabricEventKindApplicationUpgradeRollbackStarted FabricEventKind = "ApplicationUpgradeRollbackStarted" + // FabricEventKindApplicationUpgradeStarted ... + FabricEventKindApplicationUpgradeStarted FabricEventKind = "ApplicationUpgradeStarted" + // FabricEventKindChaosCodePackageRestartScheduled ... + FabricEventKindChaosCodePackageRestartScheduled FabricEventKind = "ChaosCodePackageRestartScheduled" + // FabricEventKindChaosNodeRestartScheduled ... + FabricEventKindChaosNodeRestartScheduled FabricEventKind = "ChaosNodeRestartScheduled" + // FabricEventKindChaosPartitionPrimaryMoveScheduled ... + FabricEventKindChaosPartitionPrimaryMoveScheduled FabricEventKind = "ChaosPartitionPrimaryMoveScheduled" + // FabricEventKindChaosPartitionSecondaryMoveScheduled ... + FabricEventKindChaosPartitionSecondaryMoveScheduled FabricEventKind = "ChaosPartitionSecondaryMoveScheduled" + // FabricEventKindChaosReplicaRemovalScheduled ... + FabricEventKindChaosReplicaRemovalScheduled FabricEventKind = "ChaosReplicaRemovalScheduled" + // FabricEventKindChaosReplicaRestartScheduled ... + FabricEventKindChaosReplicaRestartScheduled FabricEventKind = "ChaosReplicaRestartScheduled" + // FabricEventKindChaosStarted ... + FabricEventKindChaosStarted FabricEventKind = "ChaosStarted" + // FabricEventKindChaosStopped ... + FabricEventKindChaosStopped FabricEventKind = "ChaosStopped" + // FabricEventKindClusterEvent ... + FabricEventKindClusterEvent FabricEventKind = "ClusterEvent" + // FabricEventKindClusterHealthReportExpired ... + FabricEventKindClusterHealthReportExpired FabricEventKind = "ClusterHealthReportExpired" + // FabricEventKindClusterNewHealthReport ... + FabricEventKindClusterNewHealthReport FabricEventKind = "ClusterNewHealthReport" + // FabricEventKindClusterUpgradeCompleted ... + FabricEventKindClusterUpgradeCompleted FabricEventKind = "ClusterUpgradeCompleted" + // FabricEventKindClusterUpgradeDomainCompleted ... + FabricEventKindClusterUpgradeDomainCompleted FabricEventKind = "ClusterUpgradeDomainCompleted" + // FabricEventKindClusterUpgradeRollbackCompleted ... + FabricEventKindClusterUpgradeRollbackCompleted FabricEventKind = "ClusterUpgradeRollbackCompleted" + // FabricEventKindClusterUpgradeRollbackStarted ... + FabricEventKindClusterUpgradeRollbackStarted FabricEventKind = "ClusterUpgradeRollbackStarted" + // FabricEventKindClusterUpgradeStarted ... + FabricEventKindClusterUpgradeStarted FabricEventKind = "ClusterUpgradeStarted" + // FabricEventKindContainerInstanceEvent ... + FabricEventKindContainerInstanceEvent FabricEventKind = "ContainerInstanceEvent" + // FabricEventKindDeployedApplicationHealthReportExpired ... + FabricEventKindDeployedApplicationHealthReportExpired FabricEventKind = "DeployedApplicationHealthReportExpired" + // FabricEventKindDeployedApplicationNewHealthReport ... + FabricEventKindDeployedApplicationNewHealthReport FabricEventKind = "DeployedApplicationNewHealthReport" + // FabricEventKindDeployedServicePackageHealthReportExpired ... + FabricEventKindDeployedServicePackageHealthReportExpired FabricEventKind = "DeployedServicePackageHealthReportExpired" + // FabricEventKindDeployedServicePackageNewHealthReport ... + FabricEventKindDeployedServicePackageNewHealthReport FabricEventKind = "DeployedServicePackageNewHealthReport" + // FabricEventKindNodeAborted ... + FabricEventKindNodeAborted FabricEventKind = "NodeAborted" + // FabricEventKindNodeAddedToCluster ... + FabricEventKindNodeAddedToCluster FabricEventKind = "NodeAddedToCluster" + // FabricEventKindNodeClosed ... + FabricEventKindNodeClosed FabricEventKind = "NodeClosed" + // FabricEventKindNodeDeactivateCompleted ... + FabricEventKindNodeDeactivateCompleted FabricEventKind = "NodeDeactivateCompleted" + // FabricEventKindNodeDeactivateStarted ... + FabricEventKindNodeDeactivateStarted FabricEventKind = "NodeDeactivateStarted" + // FabricEventKindNodeDown ... + FabricEventKindNodeDown FabricEventKind = "NodeDown" + // FabricEventKindNodeEvent ... + FabricEventKindNodeEvent FabricEventKind = "NodeEvent" + // FabricEventKindNodeHealthReportExpired ... + FabricEventKindNodeHealthReportExpired FabricEventKind = "NodeHealthReportExpired" + // FabricEventKindNodeNewHealthReport ... + FabricEventKindNodeNewHealthReport FabricEventKind = "NodeNewHealthReport" + // FabricEventKindNodeOpenFailed ... + FabricEventKindNodeOpenFailed FabricEventKind = "NodeOpenFailed" + // FabricEventKindNodeOpenSucceeded ... + FabricEventKindNodeOpenSucceeded FabricEventKind = "NodeOpenSucceeded" + // FabricEventKindNodeRemovedFromCluster ... + FabricEventKindNodeRemovedFromCluster FabricEventKind = "NodeRemovedFromCluster" + // FabricEventKindNodeUp ... + FabricEventKindNodeUp FabricEventKind = "NodeUp" + // FabricEventKindPartitionAnalysisEvent ... + FabricEventKindPartitionAnalysisEvent FabricEventKind = "PartitionAnalysisEvent" + // FabricEventKindPartitionEvent ... + FabricEventKindPartitionEvent FabricEventKind = "PartitionEvent" + // FabricEventKindPartitionHealthReportExpired ... + FabricEventKindPartitionHealthReportExpired FabricEventKind = "PartitionHealthReportExpired" + // FabricEventKindPartitionNewHealthReport ... + FabricEventKindPartitionNewHealthReport FabricEventKind = "PartitionNewHealthReport" + // FabricEventKindPartitionPrimaryMoveAnalysis ... + FabricEventKindPartitionPrimaryMoveAnalysis FabricEventKind = "PartitionPrimaryMoveAnalysis" + // FabricEventKindPartitionReconfigured ... + FabricEventKindPartitionReconfigured FabricEventKind = "PartitionReconfigured" + // FabricEventKindReplicaEvent ... + FabricEventKindReplicaEvent FabricEventKind = "ReplicaEvent" + // FabricEventKindServiceCreated ... + FabricEventKindServiceCreated FabricEventKind = "ServiceCreated" + // FabricEventKindServiceDeleted ... + FabricEventKindServiceDeleted FabricEventKind = "ServiceDeleted" + // FabricEventKindServiceEvent ... + FabricEventKindServiceEvent FabricEventKind = "ServiceEvent" + // FabricEventKindServiceHealthReportExpired ... + FabricEventKindServiceHealthReportExpired FabricEventKind = "ServiceHealthReportExpired" + // FabricEventKindServiceNewHealthReport ... + FabricEventKindServiceNewHealthReport FabricEventKind = "ServiceNewHealthReport" + // FabricEventKindStatefulReplicaHealthReportExpired ... + FabricEventKindStatefulReplicaHealthReportExpired FabricEventKind = "StatefulReplicaHealthReportExpired" + // FabricEventKindStatefulReplicaNewHealthReport ... + FabricEventKindStatefulReplicaNewHealthReport FabricEventKind = "StatefulReplicaNewHealthReport" + // FabricEventKindStatelessReplicaHealthReportExpired ... + FabricEventKindStatelessReplicaHealthReportExpired FabricEventKind = "StatelessReplicaHealthReportExpired" + // FabricEventKindStatelessReplicaNewHealthReport ... + FabricEventKindStatelessReplicaNewHealthReport FabricEventKind = "StatelessReplicaNewHealthReport" +) + +// PossibleFabricEventKindValues returns an array of possible values for the FabricEventKind const type. +func PossibleFabricEventKindValues() []FabricEventKind { + return []FabricEventKind{FabricEventKindApplicationContainerInstanceExited, FabricEventKindApplicationCreated, FabricEventKindApplicationDeleted, FabricEventKindApplicationEvent, FabricEventKindApplicationHealthReportExpired, FabricEventKindApplicationNewHealthReport, FabricEventKindApplicationProcessExited, FabricEventKindApplicationUpgradeCompleted, FabricEventKindApplicationUpgradeDomainCompleted, FabricEventKindApplicationUpgradeRollbackCompleted, FabricEventKindApplicationUpgradeRollbackStarted, FabricEventKindApplicationUpgradeStarted, FabricEventKindChaosCodePackageRestartScheduled, FabricEventKindChaosNodeRestartScheduled, FabricEventKindChaosPartitionPrimaryMoveScheduled, FabricEventKindChaosPartitionSecondaryMoveScheduled, FabricEventKindChaosReplicaRemovalScheduled, FabricEventKindChaosReplicaRestartScheduled, FabricEventKindChaosStarted, FabricEventKindChaosStopped, FabricEventKindClusterEvent, FabricEventKindClusterHealthReportExpired, FabricEventKindClusterNewHealthReport, FabricEventKindClusterUpgradeCompleted, FabricEventKindClusterUpgradeDomainCompleted, FabricEventKindClusterUpgradeRollbackCompleted, FabricEventKindClusterUpgradeRollbackStarted, FabricEventKindClusterUpgradeStarted, FabricEventKindContainerInstanceEvent, FabricEventKindDeployedApplicationHealthReportExpired, FabricEventKindDeployedApplicationNewHealthReport, FabricEventKindDeployedServicePackageHealthReportExpired, FabricEventKindDeployedServicePackageNewHealthReport, FabricEventKindNodeAborted, FabricEventKindNodeAddedToCluster, FabricEventKindNodeClosed, FabricEventKindNodeDeactivateCompleted, FabricEventKindNodeDeactivateStarted, FabricEventKindNodeDown, FabricEventKindNodeEvent, FabricEventKindNodeHealthReportExpired, FabricEventKindNodeNewHealthReport, FabricEventKindNodeOpenFailed, FabricEventKindNodeOpenSucceeded, FabricEventKindNodeRemovedFromCluster, FabricEventKindNodeUp, FabricEventKindPartitionAnalysisEvent, FabricEventKindPartitionEvent, FabricEventKindPartitionHealthReportExpired, FabricEventKindPartitionNewHealthReport, FabricEventKindPartitionPrimaryMoveAnalysis, FabricEventKindPartitionReconfigured, FabricEventKindReplicaEvent, FabricEventKindServiceCreated, FabricEventKindServiceDeleted, FabricEventKindServiceEvent, FabricEventKindServiceHealthReportExpired, FabricEventKindServiceNewHealthReport, FabricEventKindStatefulReplicaHealthReportExpired, FabricEventKindStatefulReplicaNewHealthReport, FabricEventKindStatelessReplicaHealthReportExpired, FabricEventKindStatelessReplicaNewHealthReport} +} + +// FabricReplicaStatus enumerates the values for fabric replica status. +type FabricReplicaStatus string + +const ( + // FabricReplicaStatusDown Indicates that the replica is down. + FabricReplicaStatusDown FabricReplicaStatus = "Down" + // FabricReplicaStatusInvalid Indicates that the read or write operation access status is not valid. This + // value is not returned to the caller. + FabricReplicaStatusInvalid FabricReplicaStatus = "Invalid" + // FabricReplicaStatusUp Indicates that the replica is up. + FabricReplicaStatusUp FabricReplicaStatus = "Up" +) + +// PossibleFabricReplicaStatusValues returns an array of possible values for the FabricReplicaStatus const type. +func PossibleFabricReplicaStatusValues() []FabricReplicaStatus { + return []FabricReplicaStatus{FabricReplicaStatusDown, FabricReplicaStatusInvalid, FabricReplicaStatusUp} +} + +// FailureAction enumerates the values for failure action. +type FailureAction string + +const ( + // FailureActionInvalid Indicates the failure action is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + FailureActionInvalid FailureAction = "Invalid" + // FailureActionManual The upgrade will switch to UnmonitoredManual upgrade mode. The value is 2 + FailureActionManual FailureAction = "Manual" + // FailureActionRollback The upgrade will start rolling back automatically. The value is 1 + FailureActionRollback FailureAction = "Rollback" +) + +// PossibleFailureActionValues returns an array of possible values for the FailureAction const type. +func PossibleFailureActionValues() []FailureAction { + return []FailureAction{FailureActionInvalid, FailureActionManual, FailureActionRollback} +} + +// FailureReason enumerates the values for failure reason. +type FailureReason string + +const ( + // HealthCheck The upgrade failed due to health policy violations. The value is 2 + HealthCheck FailureReason = "HealthCheck" + // Interrupted There was an external request to roll back the upgrade. The value is 1 + Interrupted FailureReason = "Interrupted" + // None Indicates the reason is invalid or unknown. All Service Fabric enumerations have the invalid type. + // The value is zero. + None FailureReason = "None" + // OverallUpgradeTimeout The overall upgrade took longer than the allowed upgrade timeout to process. The + // value is 4 + OverallUpgradeTimeout FailureReason = "OverallUpgradeTimeout" + // UpgradeDomainTimeout An upgrade domain took longer than the allowed upgrade domain timeout to process. + // The value is 3 + UpgradeDomainTimeout FailureReason = "UpgradeDomainTimeout" +) + +// PossibleFailureReasonValues returns an array of possible values for the FailureReason const type. +func PossibleFailureReasonValues() []FailureReason { + return []FailureReason{HealthCheck, Interrupted, None, OverallUpgradeTimeout, UpgradeDomainTimeout} +} + +// HeaderMatchType enumerates the values for header match type. +type HeaderMatchType string + +const ( + // Exact ... + Exact HeaderMatchType = "exact" +) + +// PossibleHeaderMatchTypeValues returns an array of possible values for the HeaderMatchType const type. +func PossibleHeaderMatchTypeValues() []HeaderMatchType { + return []HeaderMatchType{Exact} +} + +// HealthEvaluationKind enumerates the values for health evaluation kind. +type HealthEvaluationKind string + +const ( + // HealthEvaluationKindApplication Indicates that the health evaluation is for an application. The value is + // 18. + HealthEvaluationKindApplication HealthEvaluationKind = "Application" + // HealthEvaluationKindApplications Indicates that the health evaluation is for the cluster applications. + // The value is 8. + HealthEvaluationKindApplications HealthEvaluationKind = "Applications" + // HealthEvaluationKindApplicationTypeApplications – Indicates that the health evaluation is for + // applications of an application type. The value is 21. + HealthEvaluationKindApplicationTypeApplications HealthEvaluationKind = "ApplicationTypeApplications" + // HealthEvaluationKindDeltaNodesCheck Indicates that the health evaluation is for the delta of unhealthy + // cluster nodes. The value is 19. + HealthEvaluationKindDeltaNodesCheck HealthEvaluationKind = "DeltaNodesCheck" + // HealthEvaluationKindDeployedApplication Indicates that the health evaluation is for a deployed + // application. The value is 17. + HealthEvaluationKindDeployedApplication HealthEvaluationKind = "DeployedApplication" + // HealthEvaluationKindDeployedApplications Indicates that the health evaluation is for the deployed + // applications of an application. The value is 5. + HealthEvaluationKindDeployedApplications HealthEvaluationKind = "DeployedApplications" + // HealthEvaluationKindDeployedServicePackage Indicates that the health evaluation is for a deployed + // service package. The value is 16. + HealthEvaluationKindDeployedServicePackage HealthEvaluationKind = "DeployedServicePackage" + // HealthEvaluationKindDeployedServicePackages Indicates that the health evaluation is for the deployed + // service packages of a deployed application. The value is 4. + HealthEvaluationKindDeployedServicePackages HealthEvaluationKind = "DeployedServicePackages" + // HealthEvaluationKindEvent Indicates that the health evaluation is for a health event. The value is 1. + HealthEvaluationKindEvent HealthEvaluationKind = "Event" + // HealthEvaluationKindInvalid Indicates that the health evaluation is invalid. The value is zero. + HealthEvaluationKindInvalid HealthEvaluationKind = "Invalid" + // HealthEvaluationKindNode Indicates that the health evaluation is for a node. The value is 12. + HealthEvaluationKindNode HealthEvaluationKind = "Node" + // HealthEvaluationKindNodes Indicates that the health evaluation is for the cluster nodes. The value is 7. + HealthEvaluationKindNodes HealthEvaluationKind = "Nodes" + // HealthEvaluationKindPartition Indicates that the health evaluation is for a partition. The value is 14. + HealthEvaluationKindPartition HealthEvaluationKind = "Partition" + // HealthEvaluationKindPartitions Indicates that the health evaluation is for the partitions of a service. + // The value is 3. + HealthEvaluationKindPartitions HealthEvaluationKind = "Partitions" + // HealthEvaluationKindReplica Indicates that the health evaluation is for a replica. The value is 13. + HealthEvaluationKindReplica HealthEvaluationKind = "Replica" + // HealthEvaluationKindReplicas Indicates that the health evaluation is for the replicas of a partition. + // The value is 2. + HealthEvaluationKindReplicas HealthEvaluationKind = "Replicas" + // HealthEvaluationKindService Indicates that the health evaluation is for a service. The value is 15. + HealthEvaluationKindService HealthEvaluationKind = "Service" + // HealthEvaluationKindServices Indicates that the health evaluation is for services of an application. The + // value is 6. + HealthEvaluationKindServices HealthEvaluationKind = "Services" + // HealthEvaluationKindSystemApplication Indicates that the health evaluation is for the system + // application. The value is 9. + HealthEvaluationKindSystemApplication HealthEvaluationKind = "SystemApplication" + // HealthEvaluationKindUpgradeDomainDeltaNodesCheck Indicates that the health evaluation is for the delta + // of unhealthy upgrade domain cluster nodes. The value is 20. + HealthEvaluationKindUpgradeDomainDeltaNodesCheck HealthEvaluationKind = "UpgradeDomainDeltaNodesCheck" + // HealthEvaluationKindUpgradeDomainDeployedApplications Indicates that the health evaluation is for the + // deployed applications of an application in an upgrade domain. The value is 10. + HealthEvaluationKindUpgradeDomainDeployedApplications HealthEvaluationKind = "UpgradeDomainDeployedApplications" + // HealthEvaluationKindUpgradeDomainNodes Indicates that the health evaluation is for the cluster nodes in + // an upgrade domain. The value is 11. + HealthEvaluationKindUpgradeDomainNodes HealthEvaluationKind = "UpgradeDomainNodes" +) + +// PossibleHealthEvaluationKindValues returns an array of possible values for the HealthEvaluationKind const type. +func PossibleHealthEvaluationKindValues() []HealthEvaluationKind { + return []HealthEvaluationKind{HealthEvaluationKindApplication, HealthEvaluationKindApplications, HealthEvaluationKindApplicationTypeApplications, HealthEvaluationKindDeltaNodesCheck, HealthEvaluationKindDeployedApplication, HealthEvaluationKindDeployedApplications, HealthEvaluationKindDeployedServicePackage, HealthEvaluationKindDeployedServicePackages, HealthEvaluationKindEvent, HealthEvaluationKindInvalid, HealthEvaluationKindNode, HealthEvaluationKindNodes, HealthEvaluationKindPartition, HealthEvaluationKindPartitions, HealthEvaluationKindReplica, HealthEvaluationKindReplicas, HealthEvaluationKindService, HealthEvaluationKindServices, HealthEvaluationKindSystemApplication, HealthEvaluationKindUpgradeDomainDeltaNodesCheck, HealthEvaluationKindUpgradeDomainDeployedApplications, HealthEvaluationKindUpgradeDomainNodes} +} + +// HealthState enumerates the values for health state. +type HealthState string + +const ( + // HealthStateError Indicates the health state is at an error level. Error health state should be + // investigated, as they can impact the correct functionality of the cluster. The value is 3. + HealthStateError HealthState = "Error" + // HealthStateInvalid Indicates an invalid health state. All Service Fabric enumerations have the invalid + // type. The value is zero. + HealthStateInvalid HealthState = "Invalid" + // HealthStateOk Indicates the health state is okay. The value is 1. + HealthStateOk HealthState = "Ok" + // HealthStateUnknown Indicates an unknown health status. The value is 65535. + HealthStateUnknown HealthState = "Unknown" + // HealthStateWarning Indicates the health state is at a warning level. The value is 2. + HealthStateWarning HealthState = "Warning" +) + +// PossibleHealthStateValues returns an array of possible values for the HealthState const type. +func PossibleHealthStateValues() []HealthState { + return []HealthState{HealthStateError, HealthStateInvalid, HealthStateOk, HealthStateUnknown, HealthStateWarning} +} + +// HostIsolationMode enumerates the values for host isolation mode. +type HostIsolationMode string + +const ( + // HostIsolationModeHyperV Indicates the ContainerHost is a Hyper-V container. This applies to only Windows + // containers. The value is 2. + HostIsolationModeHyperV HostIsolationMode = "HyperV" + // HostIsolationModeNone Indicates the isolation mode is not applicable for given HostType. The value is 0. + HostIsolationModeNone HostIsolationMode = "None" + // HostIsolationModeProcess This is the default isolation mode for a ContainerHost. The value is 1. + HostIsolationModeProcess HostIsolationMode = "Process" +) + +// PossibleHostIsolationModeValues returns an array of possible values for the HostIsolationMode const type. +func PossibleHostIsolationModeValues() []HostIsolationMode { + return []HostIsolationMode{HostIsolationModeHyperV, HostIsolationModeNone, HostIsolationModeProcess} +} + +// HostType enumerates the values for host type. +type HostType string + +const ( + // HostTypeContainerHost Indicates the host is a container. The value is 2. + HostTypeContainerHost HostType = "ContainerHost" + // HostTypeExeHost Indicates the host is an executable. The value is 1. + HostTypeExeHost HostType = "ExeHost" + // HostTypeInvalid Indicates the type of host is not known or invalid. The value is 0. + HostTypeInvalid HostType = "Invalid" +) + +// PossibleHostTypeValues returns an array of possible values for the HostType const type. +func PossibleHostTypeValues() []HostType { + return []HostType{HostTypeContainerHost, HostTypeExeHost, HostTypeInvalid} +} + +// ImpactLevel enumerates the values for impact level. +type ImpactLevel string + +const ( + // ImpactLevelInvalid ... + ImpactLevelInvalid ImpactLevel = "Invalid" + // ImpactLevelNone ... + ImpactLevelNone ImpactLevel = "None" + // ImpactLevelRemoveData ... + ImpactLevelRemoveData ImpactLevel = "RemoveData" + // ImpactLevelRemoveNode ... + ImpactLevelRemoveNode ImpactLevel = "RemoveNode" + // ImpactLevelRestart ... + ImpactLevelRestart ImpactLevel = "Restart" +) + +// PossibleImpactLevelValues returns an array of possible values for the ImpactLevel const type. +func PossibleImpactLevelValues() []ImpactLevel { + return []ImpactLevel{ImpactLevelInvalid, ImpactLevelNone, ImpactLevelRemoveData, ImpactLevelRemoveNode, ImpactLevelRestart} +} + +// Kind enumerates the values for kind. +type Kind string + +const ( + // KindApplication ... + KindApplication Kind = "Application" + // KindApplications ... + KindApplications Kind = "Applications" + // KindApplicationTypeApplications ... + KindApplicationTypeApplications Kind = "ApplicationTypeApplications" + // KindDeltaNodesCheck ... + KindDeltaNodesCheck Kind = "DeltaNodesCheck" + // KindDeployedApplication ... + KindDeployedApplication Kind = "DeployedApplication" + // KindDeployedApplications ... + KindDeployedApplications Kind = "DeployedApplications" + // KindDeployedServicePackage ... + KindDeployedServicePackage Kind = "DeployedServicePackage" + // KindDeployedServicePackages ... + KindDeployedServicePackages Kind = "DeployedServicePackages" + // KindEvent ... + KindEvent Kind = "Event" + // KindHealthEvaluation ... + KindHealthEvaluation Kind = "HealthEvaluation" + // KindNode ... + KindNode Kind = "Node" + // KindNodes ... + KindNodes Kind = "Nodes" + // KindPartition ... + KindPartition Kind = "Partition" + // KindPartitions ... + KindPartitions Kind = "Partitions" + // KindReplica ... + KindReplica Kind = "Replica" + // KindReplicas ... + KindReplicas Kind = "Replicas" + // KindService ... + KindService Kind = "Service" + // KindServices ... + KindServices Kind = "Services" + // KindSystemApplication ... + KindSystemApplication Kind = "SystemApplication" + // KindUpgradeDomainDeltaNodesCheck ... + KindUpgradeDomainDeltaNodesCheck Kind = "UpgradeDomainDeltaNodesCheck" + // KindUpgradeDomainNodes ... + KindUpgradeDomainNodes Kind = "UpgradeDomainNodes" +) + +// PossibleKindValues returns an array of possible values for the Kind const type. +func PossibleKindValues() []Kind { + return []Kind{KindApplication, KindApplications, KindApplicationTypeApplications, KindDeltaNodesCheck, KindDeployedApplication, KindDeployedApplications, KindDeployedServicePackage, KindDeployedServicePackages, KindEvent, KindHealthEvaluation, KindNode, KindNodes, KindPartition, KindPartitions, KindReplica, KindReplicas, KindService, KindServices, KindSystemApplication, KindUpgradeDomainDeltaNodesCheck, KindUpgradeDomainNodes} +} + +// KindBasicApplicationScopedVolumeCreationParameters enumerates the values for kind basic application scoped +// volume creation parameters. +type KindBasicApplicationScopedVolumeCreationParameters string + +const ( + // KindApplicationScopedVolumeCreationParameters ... + KindApplicationScopedVolumeCreationParameters KindBasicApplicationScopedVolumeCreationParameters = "ApplicationScopedVolumeCreationParameters" + // KindServiceFabricVolumeDisk ... + KindServiceFabricVolumeDisk KindBasicApplicationScopedVolumeCreationParameters = "ServiceFabricVolumeDisk" +) + +// PossibleKindBasicApplicationScopedVolumeCreationParametersValues returns an array of possible values for the KindBasicApplicationScopedVolumeCreationParameters const type. +func PossibleKindBasicApplicationScopedVolumeCreationParametersValues() []KindBasicApplicationScopedVolumeCreationParameters { + return []KindBasicApplicationScopedVolumeCreationParameters{KindApplicationScopedVolumeCreationParameters, KindServiceFabricVolumeDisk} +} + +// KindBasicAutoScalingMechanism enumerates the values for kind basic auto scaling mechanism. +type KindBasicAutoScalingMechanism string + +const ( + // KindAddRemoveReplica ... + KindAddRemoveReplica KindBasicAutoScalingMechanism = "AddRemoveReplica" + // KindAutoScalingMechanism ... + KindAutoScalingMechanism KindBasicAutoScalingMechanism = "AutoScalingMechanism" +) + +// PossibleKindBasicAutoScalingMechanismValues returns an array of possible values for the KindBasicAutoScalingMechanism const type. +func PossibleKindBasicAutoScalingMechanismValues() []KindBasicAutoScalingMechanism { + return []KindBasicAutoScalingMechanism{KindAddRemoveReplica, KindAutoScalingMechanism} +} + +// KindBasicAutoScalingMetric enumerates the values for kind basic auto scaling metric. +type KindBasicAutoScalingMetric string + +const ( + // KindAutoScalingMetric ... + KindAutoScalingMetric KindBasicAutoScalingMetric = "AutoScalingMetric" + // KindResource ... + KindResource KindBasicAutoScalingMetric = "Resource" +) + +// PossibleKindBasicAutoScalingMetricValues returns an array of possible values for the KindBasicAutoScalingMetric const type. +func PossibleKindBasicAutoScalingMetricValues() []KindBasicAutoScalingMetric { + return []KindBasicAutoScalingMetric{KindAutoScalingMetric, KindResource} +} + +// KindBasicAutoScalingTrigger enumerates the values for kind basic auto scaling trigger. +type KindBasicAutoScalingTrigger string + +const ( + // KindAutoScalingTrigger ... + KindAutoScalingTrigger KindBasicAutoScalingTrigger = "AutoScalingTrigger" + // KindAverageLoad ... + KindAverageLoad KindBasicAutoScalingTrigger = "AverageLoad" +) + +// PossibleKindBasicAutoScalingTriggerValues returns an array of possible values for the KindBasicAutoScalingTrigger const type. +func PossibleKindBasicAutoScalingTriggerValues() []KindBasicAutoScalingTrigger { + return []KindBasicAutoScalingTrigger{KindAutoScalingTrigger, KindAverageLoad} +} + +// KindBasicBackupConfigurationInfo enumerates the values for kind basic backup configuration info. +type KindBasicBackupConfigurationInfo string + +const ( + // KindBasicBackupConfigurationInfoKindApplication ... + KindBasicBackupConfigurationInfoKindApplication KindBasicBackupConfigurationInfo = "Application" + // KindBasicBackupConfigurationInfoKindBackupConfigurationInfo ... + KindBasicBackupConfigurationInfoKindBackupConfigurationInfo KindBasicBackupConfigurationInfo = "BackupConfigurationInfo" + // KindBasicBackupConfigurationInfoKindPartition ... + KindBasicBackupConfigurationInfoKindPartition KindBasicBackupConfigurationInfo = "Partition" + // KindBasicBackupConfigurationInfoKindService ... + KindBasicBackupConfigurationInfoKindService KindBasicBackupConfigurationInfo = "Service" +) + +// PossibleKindBasicBackupConfigurationInfoValues returns an array of possible values for the KindBasicBackupConfigurationInfo const type. +func PossibleKindBasicBackupConfigurationInfoValues() []KindBasicBackupConfigurationInfo { + return []KindBasicBackupConfigurationInfo{KindBasicBackupConfigurationInfoKindApplication, KindBasicBackupConfigurationInfoKindBackupConfigurationInfo, KindBasicBackupConfigurationInfoKindPartition, KindBasicBackupConfigurationInfoKindService} +} + +// KindBasicChaosEvent enumerates the values for kind basic chaos event. +type KindBasicChaosEvent string + +const ( + // KindChaosEvent ... + KindChaosEvent KindBasicChaosEvent = "ChaosEvent" + // KindExecutingFaults ... + KindExecutingFaults KindBasicChaosEvent = "ExecutingFaults" + // KindStarted ... + KindStarted KindBasicChaosEvent = "Started" + // KindStopped ... + KindStopped KindBasicChaosEvent = "Stopped" + // KindTestError ... + KindTestError KindBasicChaosEvent = "TestError" + // KindValidationFailed ... + KindValidationFailed KindBasicChaosEvent = "ValidationFailed" + // KindWaiting ... + KindWaiting KindBasicChaosEvent = "Waiting" +) + +// PossibleKindBasicChaosEventValues returns an array of possible values for the KindBasicChaosEvent const type. +func PossibleKindBasicChaosEventValues() []KindBasicChaosEvent { + return []KindBasicChaosEvent{KindChaosEvent, KindExecutingFaults, KindStarted, KindStopped, KindTestError, KindValidationFailed, KindWaiting} +} + +// KindBasicDiagnosticsSinkProperties enumerates the values for kind basic diagnostics sink properties. +type KindBasicDiagnosticsSinkProperties string + +const ( + // KindAzureInternalMonitoringPipeline ... + KindAzureInternalMonitoringPipeline KindBasicDiagnosticsSinkProperties = "AzureInternalMonitoringPipeline" + // KindDiagnosticsSinkProperties ... + KindDiagnosticsSinkProperties KindBasicDiagnosticsSinkProperties = "DiagnosticsSinkProperties" +) + +// PossibleKindBasicDiagnosticsSinkPropertiesValues returns an array of possible values for the KindBasicDiagnosticsSinkProperties const type. +func PossibleKindBasicDiagnosticsSinkPropertiesValues() []KindBasicDiagnosticsSinkProperties { + return []KindBasicDiagnosticsSinkProperties{KindAzureInternalMonitoringPipeline, KindDiagnosticsSinkProperties} +} + +// KindBasicFabricEvent enumerates the values for kind basic fabric event. +type KindBasicFabricEvent string + +const ( + // KindApplicationContainerInstanceExited ... + KindApplicationContainerInstanceExited KindBasicFabricEvent = "ApplicationContainerInstanceExited" + // KindApplicationCreated ... + KindApplicationCreated KindBasicFabricEvent = "ApplicationCreated" + // KindApplicationDeleted ... + KindApplicationDeleted KindBasicFabricEvent = "ApplicationDeleted" + // KindApplicationEvent ... + KindApplicationEvent KindBasicFabricEvent = "ApplicationEvent" + // KindApplicationHealthReportExpired ... + KindApplicationHealthReportExpired KindBasicFabricEvent = "ApplicationHealthReportExpired" + // KindApplicationNewHealthReport ... + KindApplicationNewHealthReport KindBasicFabricEvent = "ApplicationNewHealthReport" + // KindApplicationProcessExited ... + KindApplicationProcessExited KindBasicFabricEvent = "ApplicationProcessExited" + // KindApplicationUpgradeCompleted ... + KindApplicationUpgradeCompleted KindBasicFabricEvent = "ApplicationUpgradeCompleted" + // KindApplicationUpgradeDomainCompleted ... + KindApplicationUpgradeDomainCompleted KindBasicFabricEvent = "ApplicationUpgradeDomainCompleted" + // KindApplicationUpgradeRollbackCompleted ... + KindApplicationUpgradeRollbackCompleted KindBasicFabricEvent = "ApplicationUpgradeRollbackCompleted" + // KindApplicationUpgradeRollbackStarted ... + KindApplicationUpgradeRollbackStarted KindBasicFabricEvent = "ApplicationUpgradeRollbackStarted" + // KindApplicationUpgradeStarted ... + KindApplicationUpgradeStarted KindBasicFabricEvent = "ApplicationUpgradeStarted" + // KindChaosCodePackageRestartScheduled ... + KindChaosCodePackageRestartScheduled KindBasicFabricEvent = "ChaosCodePackageRestartScheduled" + // KindChaosNodeRestartScheduled ... + KindChaosNodeRestartScheduled KindBasicFabricEvent = "ChaosNodeRestartScheduled" + // KindChaosPartitionPrimaryMoveScheduled ... + KindChaosPartitionPrimaryMoveScheduled KindBasicFabricEvent = "ChaosPartitionPrimaryMoveScheduled" + // KindChaosPartitionSecondaryMoveScheduled ... + KindChaosPartitionSecondaryMoveScheduled KindBasicFabricEvent = "ChaosPartitionSecondaryMoveScheduled" + // KindChaosReplicaRemovalScheduled ... + KindChaosReplicaRemovalScheduled KindBasicFabricEvent = "ChaosReplicaRemovalScheduled" + // KindChaosReplicaRestartScheduled ... + KindChaosReplicaRestartScheduled KindBasicFabricEvent = "ChaosReplicaRestartScheduled" + // KindChaosStarted ... + KindChaosStarted KindBasicFabricEvent = "ChaosStarted" + // KindChaosStopped ... + KindChaosStopped KindBasicFabricEvent = "ChaosStopped" + // KindClusterEvent ... + KindClusterEvent KindBasicFabricEvent = "ClusterEvent" + // KindClusterHealthReportExpired ... + KindClusterHealthReportExpired KindBasicFabricEvent = "ClusterHealthReportExpired" + // KindClusterNewHealthReport ... + KindClusterNewHealthReport KindBasicFabricEvent = "ClusterNewHealthReport" + // KindClusterUpgradeCompleted ... + KindClusterUpgradeCompleted KindBasicFabricEvent = "ClusterUpgradeCompleted" + // KindClusterUpgradeDomainCompleted ... + KindClusterUpgradeDomainCompleted KindBasicFabricEvent = "ClusterUpgradeDomainCompleted" + // KindClusterUpgradeRollbackCompleted ... + KindClusterUpgradeRollbackCompleted KindBasicFabricEvent = "ClusterUpgradeRollbackCompleted" + // KindClusterUpgradeRollbackStarted ... + KindClusterUpgradeRollbackStarted KindBasicFabricEvent = "ClusterUpgradeRollbackStarted" + // KindClusterUpgradeStarted ... + KindClusterUpgradeStarted KindBasicFabricEvent = "ClusterUpgradeStarted" + // KindContainerInstanceEvent ... + KindContainerInstanceEvent KindBasicFabricEvent = "ContainerInstanceEvent" + // KindDeployedApplicationHealthReportExpired ... + KindDeployedApplicationHealthReportExpired KindBasicFabricEvent = "DeployedApplicationHealthReportExpired" + // KindDeployedApplicationNewHealthReport ... + KindDeployedApplicationNewHealthReport KindBasicFabricEvent = "DeployedApplicationNewHealthReport" + // KindDeployedServicePackageHealthReportExpired ... + KindDeployedServicePackageHealthReportExpired KindBasicFabricEvent = "DeployedServicePackageHealthReportExpired" + // KindDeployedServicePackageNewHealthReport ... + KindDeployedServicePackageNewHealthReport KindBasicFabricEvent = "DeployedServicePackageNewHealthReport" + // KindFabricEvent ... + KindFabricEvent KindBasicFabricEvent = "FabricEvent" + // KindNodeAborted ... + KindNodeAborted KindBasicFabricEvent = "NodeAborted" + // KindNodeAddedToCluster ... + KindNodeAddedToCluster KindBasicFabricEvent = "NodeAddedToCluster" + // KindNodeClosed ... + KindNodeClosed KindBasicFabricEvent = "NodeClosed" + // KindNodeDeactivateCompleted ... + KindNodeDeactivateCompleted KindBasicFabricEvent = "NodeDeactivateCompleted" + // KindNodeDeactivateStarted ... + KindNodeDeactivateStarted KindBasicFabricEvent = "NodeDeactivateStarted" + // KindNodeDown ... + KindNodeDown KindBasicFabricEvent = "NodeDown" + // KindNodeEvent ... + KindNodeEvent KindBasicFabricEvent = "NodeEvent" + // KindNodeHealthReportExpired ... + KindNodeHealthReportExpired KindBasicFabricEvent = "NodeHealthReportExpired" + // KindNodeNewHealthReport ... + KindNodeNewHealthReport KindBasicFabricEvent = "NodeNewHealthReport" + // KindNodeOpenFailed ... + KindNodeOpenFailed KindBasicFabricEvent = "NodeOpenFailed" + // KindNodeOpenSucceeded ... + KindNodeOpenSucceeded KindBasicFabricEvent = "NodeOpenSucceeded" + // KindNodeRemovedFromCluster ... + KindNodeRemovedFromCluster KindBasicFabricEvent = "NodeRemovedFromCluster" + // KindNodeUp ... + KindNodeUp KindBasicFabricEvent = "NodeUp" + // KindPartitionAnalysisEvent ... + KindPartitionAnalysisEvent KindBasicFabricEvent = "PartitionAnalysisEvent" + // KindPartitionEvent ... + KindPartitionEvent KindBasicFabricEvent = "PartitionEvent" + // KindPartitionHealthReportExpired ... + KindPartitionHealthReportExpired KindBasicFabricEvent = "PartitionHealthReportExpired" + // KindPartitionNewHealthReport ... + KindPartitionNewHealthReport KindBasicFabricEvent = "PartitionNewHealthReport" + // KindPartitionPrimaryMoveAnalysis ... + KindPartitionPrimaryMoveAnalysis KindBasicFabricEvent = "PartitionPrimaryMoveAnalysis" + // KindPartitionReconfigured ... + KindPartitionReconfigured KindBasicFabricEvent = "PartitionReconfigured" + // KindReplicaEvent ... + KindReplicaEvent KindBasicFabricEvent = "ReplicaEvent" + // KindServiceCreated ... + KindServiceCreated KindBasicFabricEvent = "ServiceCreated" + // KindServiceDeleted ... + KindServiceDeleted KindBasicFabricEvent = "ServiceDeleted" + // KindServiceEvent ... + KindServiceEvent KindBasicFabricEvent = "ServiceEvent" + // KindServiceHealthReportExpired ... + KindServiceHealthReportExpired KindBasicFabricEvent = "ServiceHealthReportExpired" + // KindServiceNewHealthReport ... + KindServiceNewHealthReport KindBasicFabricEvent = "ServiceNewHealthReport" + // KindStatefulReplicaHealthReportExpired ... + KindStatefulReplicaHealthReportExpired KindBasicFabricEvent = "StatefulReplicaHealthReportExpired" + // KindStatefulReplicaNewHealthReport ... + KindStatefulReplicaNewHealthReport KindBasicFabricEvent = "StatefulReplicaNewHealthReport" + // KindStatelessReplicaHealthReportExpired ... + KindStatelessReplicaHealthReportExpired KindBasicFabricEvent = "StatelessReplicaHealthReportExpired" + // KindStatelessReplicaNewHealthReport ... + KindStatelessReplicaNewHealthReport KindBasicFabricEvent = "StatelessReplicaNewHealthReport" +) + +// PossibleKindBasicFabricEventValues returns an array of possible values for the KindBasicFabricEvent const type. +func PossibleKindBasicFabricEventValues() []KindBasicFabricEvent { + return []KindBasicFabricEvent{KindApplicationContainerInstanceExited, KindApplicationCreated, KindApplicationDeleted, KindApplicationEvent, KindApplicationHealthReportExpired, KindApplicationNewHealthReport, KindApplicationProcessExited, KindApplicationUpgradeCompleted, KindApplicationUpgradeDomainCompleted, KindApplicationUpgradeRollbackCompleted, KindApplicationUpgradeRollbackStarted, KindApplicationUpgradeStarted, KindChaosCodePackageRestartScheduled, KindChaosNodeRestartScheduled, KindChaosPartitionPrimaryMoveScheduled, KindChaosPartitionSecondaryMoveScheduled, KindChaosReplicaRemovalScheduled, KindChaosReplicaRestartScheduled, KindChaosStarted, KindChaosStopped, KindClusterEvent, KindClusterHealthReportExpired, KindClusterNewHealthReport, KindClusterUpgradeCompleted, KindClusterUpgradeDomainCompleted, KindClusterUpgradeRollbackCompleted, KindClusterUpgradeRollbackStarted, KindClusterUpgradeStarted, KindContainerInstanceEvent, KindDeployedApplicationHealthReportExpired, KindDeployedApplicationNewHealthReport, KindDeployedServicePackageHealthReportExpired, KindDeployedServicePackageNewHealthReport, KindFabricEvent, KindNodeAborted, KindNodeAddedToCluster, KindNodeClosed, KindNodeDeactivateCompleted, KindNodeDeactivateStarted, KindNodeDown, KindNodeEvent, KindNodeHealthReportExpired, KindNodeNewHealthReport, KindNodeOpenFailed, KindNodeOpenSucceeded, KindNodeRemovedFromCluster, KindNodeUp, KindPartitionAnalysisEvent, KindPartitionEvent, KindPartitionHealthReportExpired, KindPartitionNewHealthReport, KindPartitionPrimaryMoveAnalysis, KindPartitionReconfigured, KindReplicaEvent, KindServiceCreated, KindServiceDeleted, KindServiceEvent, KindServiceHealthReportExpired, KindServiceNewHealthReport, KindStatefulReplicaHealthReportExpired, KindStatefulReplicaNewHealthReport, KindStatelessReplicaHealthReportExpired, KindStatelessReplicaNewHealthReport} +} + +// KindBasicNetworkResourcePropertiesBase enumerates the values for kind basic network resource properties +// base. +type KindBasicNetworkResourcePropertiesBase string + +const ( + // KindLocal ... + KindLocal KindBasicNetworkResourcePropertiesBase = "Local" + // KindNetworkResourceProperties ... + KindNetworkResourceProperties KindBasicNetworkResourcePropertiesBase = "NetworkResourceProperties" + // KindNetworkResourcePropertiesBase ... + KindNetworkResourcePropertiesBase KindBasicNetworkResourcePropertiesBase = "NetworkResourcePropertiesBase" +) + +// PossibleKindBasicNetworkResourcePropertiesBaseValues returns an array of possible values for the KindBasicNetworkResourcePropertiesBase const type. +func PossibleKindBasicNetworkResourcePropertiesBaseValues() []KindBasicNetworkResourcePropertiesBase { + return []KindBasicNetworkResourcePropertiesBase{KindLocal, KindNetworkResourceProperties, KindNetworkResourcePropertiesBase} +} + +// KindBasicPropertyBatchInfo enumerates the values for kind basic property batch info. +type KindBasicPropertyBatchInfo string + +const ( + // KindFailed ... + KindFailed KindBasicPropertyBatchInfo = "Failed" + // KindPropertyBatchInfo ... + KindPropertyBatchInfo KindBasicPropertyBatchInfo = "PropertyBatchInfo" + // KindSuccessful ... + KindSuccessful KindBasicPropertyBatchInfo = "Successful" +) + +// PossibleKindBasicPropertyBatchInfoValues returns an array of possible values for the KindBasicPropertyBatchInfo const type. +func PossibleKindBasicPropertyBatchInfoValues() []KindBasicPropertyBatchInfo { + return []KindBasicPropertyBatchInfo{KindFailed, KindPropertyBatchInfo, KindSuccessful} +} + +// KindBasicPropertyBatchOperation enumerates the values for kind basic property batch operation. +type KindBasicPropertyBatchOperation string + +const ( + // KindCheckExists ... + KindCheckExists KindBasicPropertyBatchOperation = "CheckExists" + // KindCheckSequence ... + KindCheckSequence KindBasicPropertyBatchOperation = "CheckSequence" + // KindCheckValue ... + KindCheckValue KindBasicPropertyBatchOperation = "CheckValue" + // KindDelete ... + KindDelete KindBasicPropertyBatchOperation = "Delete" + // KindGet ... + KindGet KindBasicPropertyBatchOperation = "Get" + // KindPropertyBatchOperation ... + KindPropertyBatchOperation KindBasicPropertyBatchOperation = "PropertyBatchOperation" + // KindPut ... + KindPut KindBasicPropertyBatchOperation = "Put" +) + +// PossibleKindBasicPropertyBatchOperationValues returns an array of possible values for the KindBasicPropertyBatchOperation const type. +func PossibleKindBasicPropertyBatchOperationValues() []KindBasicPropertyBatchOperation { + return []KindBasicPropertyBatchOperation{KindCheckExists, KindCheckSequence, KindCheckValue, KindDelete, KindGet, KindPropertyBatchOperation, KindPut} +} + +// KindBasicPropertyValue enumerates the values for kind basic property value. +type KindBasicPropertyValue string + +const ( + // KindBinary ... + KindBinary KindBasicPropertyValue = "Binary" + // KindDouble ... + KindDouble KindBasicPropertyValue = "Double" + // KindGUID ... + KindGUID KindBasicPropertyValue = "Guid" + // KindInt64 ... + KindInt64 KindBasicPropertyValue = "Int64" + // KindPropertyValue ... + KindPropertyValue KindBasicPropertyValue = "PropertyValue" + // KindString ... + KindString KindBasicPropertyValue = "String" +) + +// PossibleKindBasicPropertyValueValues returns an array of possible values for the KindBasicPropertyValue const type. +func PossibleKindBasicPropertyValueValues() []KindBasicPropertyValue { + return []KindBasicPropertyValue{KindBinary, KindDouble, KindGUID, KindInt64, KindPropertyValue, KindString} +} + +// KindBasicProvisionApplicationTypeDescriptionBase enumerates the values for kind basic provision application +// type description base. +type KindBasicProvisionApplicationTypeDescriptionBase string + +const ( + // KindExternalStore ... + KindExternalStore KindBasicProvisionApplicationTypeDescriptionBase = "ExternalStore" + // KindImageStorePath ... + KindImageStorePath KindBasicProvisionApplicationTypeDescriptionBase = "ImageStorePath" + // KindProvisionApplicationTypeDescriptionBase ... + KindProvisionApplicationTypeDescriptionBase KindBasicProvisionApplicationTypeDescriptionBase = "ProvisionApplicationTypeDescriptionBase" +) + +// PossibleKindBasicProvisionApplicationTypeDescriptionBaseValues returns an array of possible values for the KindBasicProvisionApplicationTypeDescriptionBase const type. +func PossibleKindBasicProvisionApplicationTypeDescriptionBaseValues() []KindBasicProvisionApplicationTypeDescriptionBase { + return []KindBasicProvisionApplicationTypeDescriptionBase{KindExternalStore, KindImageStorePath, KindProvisionApplicationTypeDescriptionBase} +} + +// KindBasicRepairImpactDescriptionBase enumerates the values for kind basic repair impact description base. +type KindBasicRepairImpactDescriptionBase string + +const ( + // KindBasicRepairImpactDescriptionBaseKindNode ... + KindBasicRepairImpactDescriptionBaseKindNode KindBasicRepairImpactDescriptionBase = "Node" + // KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase ... + KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase KindBasicRepairImpactDescriptionBase = "RepairImpactDescriptionBase" +) + +// PossibleKindBasicRepairImpactDescriptionBaseValues returns an array of possible values for the KindBasicRepairImpactDescriptionBase const type. +func PossibleKindBasicRepairImpactDescriptionBaseValues() []KindBasicRepairImpactDescriptionBase { + return []KindBasicRepairImpactDescriptionBase{KindBasicRepairImpactDescriptionBaseKindNode, KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase} +} + +// KindBasicRepairTargetDescriptionBase enumerates the values for kind basic repair target description base. +type KindBasicRepairTargetDescriptionBase string + +const ( + // KindBasicRepairTargetDescriptionBaseKindNode ... + KindBasicRepairTargetDescriptionBaseKindNode KindBasicRepairTargetDescriptionBase = "Node" + // KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase ... + KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase KindBasicRepairTargetDescriptionBase = "RepairTargetDescriptionBase" +) + +// PossibleKindBasicRepairTargetDescriptionBaseValues returns an array of possible values for the KindBasicRepairTargetDescriptionBase const type. +func PossibleKindBasicRepairTargetDescriptionBaseValues() []KindBasicRepairTargetDescriptionBase { + return []KindBasicRepairTargetDescriptionBase{KindBasicRepairTargetDescriptionBaseKindNode, KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase} +} + +// KindBasicReplicaStatusBase enumerates the values for kind basic replica status base. +type KindBasicReplicaStatusBase string + +const ( + // KindKeyValueStore ... + KindKeyValueStore KindBasicReplicaStatusBase = "KeyValueStore" + // KindReplicaStatusBase ... + KindReplicaStatusBase KindBasicReplicaStatusBase = "ReplicaStatusBase" +) + +// PossibleKindBasicReplicaStatusBaseValues returns an array of possible values for the KindBasicReplicaStatusBase const type. +func PossibleKindBasicReplicaStatusBaseValues() []KindBasicReplicaStatusBase { + return []KindBasicReplicaStatusBase{KindKeyValueStore, KindReplicaStatusBase} +} + +// KindBasicReplicatorStatus enumerates the values for kind basic replicator status. +type KindBasicReplicatorStatus string + +const ( + // KindActiveSecondary ... + KindActiveSecondary KindBasicReplicatorStatus = "ActiveSecondary" + // KindIdleSecondary ... + KindIdleSecondary KindBasicReplicatorStatus = "IdleSecondary" + // KindPrimary ... + KindPrimary KindBasicReplicatorStatus = "Primary" + // KindReplicatorStatus ... + KindReplicatorStatus KindBasicReplicatorStatus = "ReplicatorStatus" + // KindSecondaryReplicatorStatus ... + KindSecondaryReplicatorStatus KindBasicReplicatorStatus = "SecondaryReplicatorStatus" +) + +// PossibleKindBasicReplicatorStatusValues returns an array of possible values for the KindBasicReplicatorStatus const type. +func PossibleKindBasicReplicatorStatusValues() []KindBasicReplicatorStatus { + return []KindBasicReplicatorStatus{KindActiveSecondary, KindIdleSecondary, KindPrimary, KindReplicatorStatus, KindSecondaryReplicatorStatus} +} + +// KindBasicSafetyCheck enumerates the values for kind basic safety check. +type KindBasicSafetyCheck string + +const ( + // KindEnsureAvailability ... + KindEnsureAvailability KindBasicSafetyCheck = "EnsureAvailability" + // KindEnsurePartitionQuorum ... + KindEnsurePartitionQuorum KindBasicSafetyCheck = "EnsurePartitionQuorum" + // KindEnsureSeedNodeQuorum ... + KindEnsureSeedNodeQuorum KindBasicSafetyCheck = "EnsureSeedNodeQuorum" + // KindPartitionSafetyCheck ... + KindPartitionSafetyCheck KindBasicSafetyCheck = "PartitionSafetyCheck" + // KindSafetyCheck ... + KindSafetyCheck KindBasicSafetyCheck = "SafetyCheck" + // KindWaitForInbuildReplica ... + KindWaitForInbuildReplica KindBasicSafetyCheck = "WaitForInbuildReplica" + // KindWaitForPrimaryPlacement ... + KindWaitForPrimaryPlacement KindBasicSafetyCheck = "WaitForPrimaryPlacement" + // KindWaitForPrimarySwap ... + KindWaitForPrimarySwap KindBasicSafetyCheck = "WaitForPrimarySwap" + // KindWaitForReconfiguration ... + KindWaitForReconfiguration KindBasicSafetyCheck = "WaitForReconfiguration" +) + +// PossibleKindBasicSafetyCheckValues returns an array of possible values for the KindBasicSafetyCheck const type. +func PossibleKindBasicSafetyCheckValues() []KindBasicSafetyCheck { + return []KindBasicSafetyCheck{KindEnsureAvailability, KindEnsurePartitionQuorum, KindEnsureSeedNodeQuorum, KindPartitionSafetyCheck, KindSafetyCheck, KindWaitForInbuildReplica, KindWaitForPrimaryPlacement, KindWaitForPrimarySwap, KindWaitForReconfiguration} +} + +// KindBasicScalingMechanismDescription enumerates the values for kind basic scaling mechanism description. +type KindBasicScalingMechanismDescription string + +const ( + // KindAddRemoveIncrementalNamedPartition ... + KindAddRemoveIncrementalNamedPartition KindBasicScalingMechanismDescription = "AddRemoveIncrementalNamedPartition" + // KindPartitionInstanceCount ... + KindPartitionInstanceCount KindBasicScalingMechanismDescription = "PartitionInstanceCount" + // KindScalingMechanismDescription ... + KindScalingMechanismDescription KindBasicScalingMechanismDescription = "ScalingMechanismDescription" +) + +// PossibleKindBasicScalingMechanismDescriptionValues returns an array of possible values for the KindBasicScalingMechanismDescription const type. +func PossibleKindBasicScalingMechanismDescriptionValues() []KindBasicScalingMechanismDescription { + return []KindBasicScalingMechanismDescription{KindAddRemoveIncrementalNamedPartition, KindPartitionInstanceCount, KindScalingMechanismDescription} +} + +// KindBasicScalingTriggerDescription enumerates the values for kind basic scaling trigger description. +type KindBasicScalingTriggerDescription string + +const ( + // KindAveragePartitionLoad ... + KindAveragePartitionLoad KindBasicScalingTriggerDescription = "AveragePartitionLoad" + // KindAverageServiceLoad ... + KindAverageServiceLoad KindBasicScalingTriggerDescription = "AverageServiceLoad" + // KindScalingTriggerDescription ... + KindScalingTriggerDescription KindBasicScalingTriggerDescription = "ScalingTriggerDescription" +) + +// PossibleKindBasicScalingTriggerDescriptionValues returns an array of possible values for the KindBasicScalingTriggerDescription const type. +func PossibleKindBasicScalingTriggerDescriptionValues() []KindBasicScalingTriggerDescription { + return []KindBasicScalingTriggerDescription{KindAveragePartitionLoad, KindAverageServiceLoad, KindScalingTriggerDescription} +} + +// KindBasicSecretResourcePropertiesBase enumerates the values for kind basic secret resource properties base. +type KindBasicSecretResourcePropertiesBase string + +const ( + // KindInlinedValue ... + KindInlinedValue KindBasicSecretResourcePropertiesBase = "inlinedValue" + // KindSecretResourceProperties ... + KindSecretResourceProperties KindBasicSecretResourcePropertiesBase = "SecretResourceProperties" + // KindSecretResourcePropertiesBase ... + KindSecretResourcePropertiesBase KindBasicSecretResourcePropertiesBase = "SecretResourcePropertiesBase" +) + +// PossibleKindBasicSecretResourcePropertiesBaseValues returns an array of possible values for the KindBasicSecretResourcePropertiesBase const type. +func PossibleKindBasicSecretResourcePropertiesBaseValues() []KindBasicSecretResourcePropertiesBase { + return []KindBasicSecretResourcePropertiesBase{KindInlinedValue, KindSecretResourceProperties, KindSecretResourcePropertiesBase} +} + +// KindBasicServiceTypeDescription enumerates the values for kind basic service type description. +type KindBasicServiceTypeDescription string + +const ( + // KindServiceTypeDescription ... + KindServiceTypeDescription KindBasicServiceTypeDescription = "ServiceTypeDescription" + // KindStateful ... + KindStateful KindBasicServiceTypeDescription = "Stateful" + // KindStateless ... + KindStateless KindBasicServiceTypeDescription = "Stateless" +) + +// PossibleKindBasicServiceTypeDescriptionValues returns an array of possible values for the KindBasicServiceTypeDescription const type. +func PossibleKindBasicServiceTypeDescriptionValues() []KindBasicServiceTypeDescription { + return []KindBasicServiceTypeDescription{KindServiceTypeDescription, KindStateful, KindStateless} +} + +// MoveCost enumerates the values for move cost. +type MoveCost string + +const ( + // High Specifies the move cost of the service as High. The value is 3. + High MoveCost = "High" + // Low Specifies the move cost of the service as Low. The value is 1. + Low MoveCost = "Low" + // Medium Specifies the move cost of the service as Medium. The value is 2. + Medium MoveCost = "Medium" + // Zero Zero move cost. This value is zero. + Zero MoveCost = "Zero" +) + +// PossibleMoveCostValues returns an array of possible values for the MoveCost const type. +func PossibleMoveCostValues() []MoveCost { + return []MoveCost{High, Low, Medium, Zero} +} + +// NetworkKind enumerates the values for network kind. +type NetworkKind string + +const ( + // Local Indicates a container network local to a single Service Fabric cluster. The value is 1. + Local NetworkKind = "Local" +) + +// PossibleNetworkKindValues returns an array of possible values for the NetworkKind const type. +func PossibleNetworkKindValues() []NetworkKind { + return []NetworkKind{Local} +} + +// NodeDeactivationIntent enumerates the values for node deactivation intent. +type NodeDeactivationIntent string + +const ( + // NodeDeactivationIntentInvalid Indicates the node deactivation intent is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. This value is not used. + NodeDeactivationIntentInvalid NodeDeactivationIntent = "Invalid" + // NodeDeactivationIntentPause Indicates that the node should be paused. The value is 1. + NodeDeactivationIntentPause NodeDeactivationIntent = "Pause" + // NodeDeactivationIntentRemoveData Indicates that the intent is to reimage the node. Service Fabric does + // not reimage the node, this action is done outside of Service Fabric. The value is 3. + NodeDeactivationIntentRemoveData NodeDeactivationIntent = "RemoveData" + // NodeDeactivationIntentRemoveNode Indicates that the node is being decommissioned and is not expected to + // return. Service Fabric does not decommission the node, this action is done outside of Service Fabric. + // The value is 4. + NodeDeactivationIntentRemoveNode NodeDeactivationIntent = "RemoveNode" + // NodeDeactivationIntentRestart Indicates that the intent is for the node to be restarted after a short + // period of time. Service Fabric does not restart the node, this action is done outside of Service Fabric. + // The value is 2. + NodeDeactivationIntentRestart NodeDeactivationIntent = "Restart" +) + +// PossibleNodeDeactivationIntentValues returns an array of possible values for the NodeDeactivationIntent const type. +func PossibleNodeDeactivationIntentValues() []NodeDeactivationIntent { + return []NodeDeactivationIntent{NodeDeactivationIntentInvalid, NodeDeactivationIntentPause, NodeDeactivationIntentRemoveData, NodeDeactivationIntentRemoveNode, NodeDeactivationIntentRestart} +} + +// NodeDeactivationStatus enumerates the values for node deactivation status. +type NodeDeactivationStatus string + +const ( + // NodeDeactivationStatusCompleted The task is completed. The value is 3. + NodeDeactivationStatusCompleted NodeDeactivationStatus = "Completed" + // NodeDeactivationStatusNone No status is associated with the task. The value is zero. + NodeDeactivationStatusNone NodeDeactivationStatus = "None" + // NodeDeactivationStatusSafetyCheckComplete When a node is deactivated Service Fabric performs checks to + // ensure that the operation is safe to proceed to ensure availability of the service and reliability of + // the state. This value indicates that all safety checks have been completed. The value is 2. + NodeDeactivationStatusSafetyCheckComplete NodeDeactivationStatus = "SafetyCheckComplete" + // NodeDeactivationStatusSafetyCheckInProgress When a node is deactivated Service Fabric performs checks to + // ensure that the operation is safe to proceed to ensure availability of the service and reliability of + // the state. This value indicates that one or more safety checks are in progress. The value is 1. + NodeDeactivationStatusSafetyCheckInProgress NodeDeactivationStatus = "SafetyCheckInProgress" +) + +// PossibleNodeDeactivationStatusValues returns an array of possible values for the NodeDeactivationStatus const type. +func PossibleNodeDeactivationStatusValues() []NodeDeactivationStatus { + return []NodeDeactivationStatus{NodeDeactivationStatusCompleted, NodeDeactivationStatusNone, NodeDeactivationStatusSafetyCheckComplete, NodeDeactivationStatusSafetyCheckInProgress} +} + +// NodeDeactivationTaskType enumerates the values for node deactivation task type. +type NodeDeactivationTaskType string + +const ( + // NodeDeactivationTaskTypeClient Specifies that the task was created by using the public API. The value is + // 3. + NodeDeactivationTaskTypeClient NodeDeactivationTaskType = "Client" + // NodeDeactivationTaskTypeInfrastructure Specifies the task created by Infrastructure hosting the nodes. + // The value is 1. + NodeDeactivationTaskTypeInfrastructure NodeDeactivationTaskType = "Infrastructure" + // NodeDeactivationTaskTypeInvalid Indicates the node deactivation task type is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. This value is not used. + NodeDeactivationTaskTypeInvalid NodeDeactivationTaskType = "Invalid" + // NodeDeactivationTaskTypeRepair Specifies the task that was created by the Repair Manager service. The + // value is 2. + NodeDeactivationTaskTypeRepair NodeDeactivationTaskType = "Repair" +) + +// PossibleNodeDeactivationTaskTypeValues returns an array of possible values for the NodeDeactivationTaskType const type. +func PossibleNodeDeactivationTaskTypeValues() []NodeDeactivationTaskType { + return []NodeDeactivationTaskType{NodeDeactivationTaskTypeClient, NodeDeactivationTaskTypeInfrastructure, NodeDeactivationTaskTypeInvalid, NodeDeactivationTaskTypeRepair} +} + +// NodeStatus enumerates the values for node status. +type NodeStatus string + +const ( + // NodeStatusDisabled Indicates the node is disabled. The value is 5. + NodeStatusDisabled NodeStatus = "Disabled" + // NodeStatusDisabling Indicates the node is in the process of being disabled. The value is 4. + NodeStatusDisabling NodeStatus = "Disabling" + // NodeStatusDown Indicates the node is down. The value is 2. + NodeStatusDown NodeStatus = "Down" + // NodeStatusEnabling Indicates the node is in process of being enabled. The value is 3. + NodeStatusEnabling NodeStatus = "Enabling" + // NodeStatusInvalid Indicates the node status is invalid. All Service Fabric enumerations have the invalid + // type. The value is zero. + NodeStatusInvalid NodeStatus = "Invalid" + // NodeStatusRemoved Indicates the node is removed. A node would be in Removed state if NodeStateRemoved + // API has been called for this node. In other words, Service Fabric has been informed that the persisted + // state on the node has been permanently lost. The value is 7. + NodeStatusRemoved NodeStatus = "Removed" + // NodeStatusUnknown Indicates the node is unknown. A node would be in Unknown state if Service Fabric does + // not have authoritative information about that node. This can happen if the system learns about a node at + // runtime.The value is 6. + NodeStatusUnknown NodeStatus = "Unknown" + // NodeStatusUp Indicates the node is up. The value is 1. + NodeStatusUp NodeStatus = "Up" +) + +// PossibleNodeStatusValues returns an array of possible values for the NodeStatus const type. +func PossibleNodeStatusValues() []NodeStatus { + return []NodeStatus{NodeStatusDisabled, NodeStatusDisabling, NodeStatusDown, NodeStatusEnabling, NodeStatusInvalid, NodeStatusRemoved, NodeStatusUnknown, NodeStatusUp} +} + +// NodeStatusFilter enumerates the values for node status filter. +type NodeStatusFilter string + +const ( + // All This filter value will match all of the nodes. + All NodeStatusFilter = "all" + // Default This filter value will match all of the nodes excepts the ones with status as Unknown or + // Removed. + Default NodeStatusFilter = "default" + // Disabled This filter value will match nodes that are Disabled. + Disabled NodeStatusFilter = "disabled" + // Disabling This filter value will match nodes that are in the process of being disabled with status as + // Disabling. + Disabling NodeStatusFilter = "disabling" + // Down This filter value will match nodes that are Down. + Down NodeStatusFilter = "down" + // Enabling This filter value will match nodes that are in the process of being enabled with status as + // Enabling. + Enabling NodeStatusFilter = "enabling" + // Removed This filter value will match nodes whose status is Removed. These are the nodes that are removed + // from the cluster using the RemoveNodeState API. + Removed NodeStatusFilter = "removed" + // Unknown This filter value will match nodes whose status is Unknown. A node would be in Unknown state if + // Service Fabric does not have authoritative information about that node. This can happen if the system + // learns about a node at runtime. + Unknown NodeStatusFilter = "unknown" + // Up This filter value will match nodes that are Up. + Up NodeStatusFilter = "up" +) + +// PossibleNodeStatusFilterValues returns an array of possible values for the NodeStatusFilter const type. +func PossibleNodeStatusFilterValues() []NodeStatusFilter { + return []NodeStatusFilter{All, Default, Disabled, Disabling, Down, Enabling, Removed, Unknown, Up} +} + +// NodeTransitionType enumerates the values for node transition type. +type NodeTransitionType string + +const ( + // NodeTransitionTypeInvalid Reserved. Do not pass into API. + NodeTransitionTypeInvalid NodeTransitionType = "Invalid" + // NodeTransitionTypeStart Transition a stopped node to up. + NodeTransitionTypeStart NodeTransitionType = "Start" + // NodeTransitionTypeStop Transition an up node to stopped. + NodeTransitionTypeStop NodeTransitionType = "Stop" +) + +// PossibleNodeTransitionTypeValues returns an array of possible values for the NodeTransitionType const type. +func PossibleNodeTransitionTypeValues() []NodeTransitionType { + return []NodeTransitionType{NodeTransitionTypeInvalid, NodeTransitionTypeStart, NodeTransitionTypeStop} +} + +// NodeUpgradePhase enumerates the values for node upgrade phase. +type NodeUpgradePhase string + +const ( + // NodeUpgradePhaseInvalid Indicates the upgrade state is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + NodeUpgradePhaseInvalid NodeUpgradePhase = "Invalid" + // NodeUpgradePhasePostUpgradeSafetyCheck The upgrade has completed and post upgrade safety checks are + // being performed. The value is 3 + NodeUpgradePhasePostUpgradeSafetyCheck NodeUpgradePhase = "PostUpgradeSafetyCheck" + // NodeUpgradePhasePreUpgradeSafetyCheck The upgrade has not started yet due to pending safety checks. The + // value is 1 + NodeUpgradePhasePreUpgradeSafetyCheck NodeUpgradePhase = "PreUpgradeSafetyCheck" + // NodeUpgradePhaseUpgrading The upgrade is in progress. The value is 2 + NodeUpgradePhaseUpgrading NodeUpgradePhase = "Upgrading" +) + +// PossibleNodeUpgradePhaseValues returns an array of possible values for the NodeUpgradePhase const type. +func PossibleNodeUpgradePhaseValues() []NodeUpgradePhase { + return []NodeUpgradePhase{NodeUpgradePhaseInvalid, NodeUpgradePhasePostUpgradeSafetyCheck, NodeUpgradePhasePreUpgradeSafetyCheck, NodeUpgradePhaseUpgrading} +} + +// OperatingSystemType enumerates the values for operating system type. +type OperatingSystemType string + +const ( + // Linux The required operating system is Linux. + Linux OperatingSystemType = "Linux" + // Windows The required operating system is Windows. + Windows OperatingSystemType = "Windows" +) + +// PossibleOperatingSystemTypeValues returns an array of possible values for the OperatingSystemType const type. +func PossibleOperatingSystemTypeValues() []OperatingSystemType { + return []OperatingSystemType{Linux, Windows} +} + +// OperationState enumerates the values for operation state. +type OperationState string + +const ( + // OperationStateCancelled The operation was cancelled by the user using CancelOperation, and is no longer + // running. + OperationStateCancelled OperationState = "Cancelled" + // OperationStateCompleted The operation has completed successfully and is no longer running. + OperationStateCompleted OperationState = "Completed" + // OperationStateFaulted The operation has failed and is no longer running. + OperationStateFaulted OperationState = "Faulted" + // OperationStateForceCancelled The operation was cancelled by the user using CancelOperation, with the + // force parameter set to true. It is no longer running. Refer to CancelOperation for more details. + OperationStateForceCancelled OperationState = "ForceCancelled" + // OperationStateInvalid The operation state is invalid. + OperationStateInvalid OperationState = "Invalid" + // OperationStateRollingBack The operation is rolling back internal system state because it encountered a + // fatal error or was cancelled by the user. "RollingBack" does not refer to user state. For example, + // if CancelOperation is called on a command of type PartitionDataLoss, state of "RollingBack" does not + // mean service data is being restored (assuming the command has progressed far enough to cause data loss). + // It means the system is rolling back/cleaning up internal system state associated with the command. + OperationStateRollingBack OperationState = "RollingBack" + // OperationStateRunning The operation is in progress. + OperationStateRunning OperationState = "Running" +) + +// PossibleOperationStateValues returns an array of possible values for the OperationState const type. +func PossibleOperationStateValues() []OperationState { + return []OperationState{OperationStateCancelled, OperationStateCompleted, OperationStateFaulted, OperationStateForceCancelled, OperationStateInvalid, OperationStateRollingBack, OperationStateRunning} +} + +// OperationType enumerates the values for operation type. +type OperationType string + +const ( + // OperationTypeInvalid The operation state is invalid. + OperationTypeInvalid OperationType = "Invalid" + // OperationTypeNodeTransition An operation started using the StartNodeTransition API. + OperationTypeNodeTransition OperationType = "NodeTransition" + // OperationTypePartitionDataLoss An operation started using the StartDataLoss API. + OperationTypePartitionDataLoss OperationType = "PartitionDataLoss" + // OperationTypePartitionQuorumLoss An operation started using the StartQuorumLoss API. + OperationTypePartitionQuorumLoss OperationType = "PartitionQuorumLoss" + // OperationTypePartitionRestart An operation started using the StartPartitionRestart API. + OperationTypePartitionRestart OperationType = "PartitionRestart" +) + +// PossibleOperationTypeValues returns an array of possible values for the OperationType const type. +func PossibleOperationTypeValues() []OperationType { + return []OperationType{OperationTypeInvalid, OperationTypeNodeTransition, OperationTypePartitionDataLoss, OperationTypePartitionQuorumLoss, OperationTypePartitionRestart} +} + +// PackageSharingPolicyScope enumerates the values for package sharing policy scope. +type PackageSharingPolicyScope string + +const ( + // PackageSharingPolicyScopeAll Share all code, config and data packages from corresponding service + // manifest. The value is 1. + PackageSharingPolicyScopeAll PackageSharingPolicyScope = "All" + // PackageSharingPolicyScopeCode Share all code packages from corresponding service manifest. The value is + // 2. + PackageSharingPolicyScopeCode PackageSharingPolicyScope = "Code" + // PackageSharingPolicyScopeConfig Share all config packages from corresponding service manifest. The value + // is 3. + PackageSharingPolicyScopeConfig PackageSharingPolicyScope = "Config" + // PackageSharingPolicyScopeData Share all data packages from corresponding service manifest. The value is + // 4. + PackageSharingPolicyScopeData PackageSharingPolicyScope = "Data" + // PackageSharingPolicyScopeNone No package sharing policy scope. The value is 0. + PackageSharingPolicyScopeNone PackageSharingPolicyScope = "None" +) + +// PossiblePackageSharingPolicyScopeValues returns an array of possible values for the PackageSharingPolicyScope const type. +func PossiblePackageSharingPolicyScopeValues() []PackageSharingPolicyScope { + return []PackageSharingPolicyScope{PackageSharingPolicyScopeAll, PackageSharingPolicyScopeCode, PackageSharingPolicyScopeConfig, PackageSharingPolicyScopeData, PackageSharingPolicyScopeNone} +} + +// PartitionAccessStatus enumerates the values for partition access status. +type PartitionAccessStatus string + +const ( + // PartitionAccessStatusGranted Indicates that the read or write operation access is granted and the + // operation is allowed. + PartitionAccessStatusGranted PartitionAccessStatus = "Granted" + // PartitionAccessStatusInvalid Indicates that the read or write operation access status is not valid. This + // value is not returned to the caller. + PartitionAccessStatusInvalid PartitionAccessStatus = "Invalid" + // PartitionAccessStatusNotPrimary Indicates that this client request was received by a replica that is not + // a Primary replica. + PartitionAccessStatusNotPrimary PartitionAccessStatus = "NotPrimary" + // PartitionAccessStatusNoWriteQuorum Indicates that no write quorum is available and, therefore, no write + // operation can be accepted. + PartitionAccessStatusNoWriteQuorum PartitionAccessStatus = "NoWriteQuorum" + // PartitionAccessStatusReconfigurationPending Indicates that the client should try again later, because a + // reconfiguration is in progress. + PartitionAccessStatusReconfigurationPending PartitionAccessStatus = "ReconfigurationPending" +) + +// PossiblePartitionAccessStatusValues returns an array of possible values for the PartitionAccessStatus const type. +func PossiblePartitionAccessStatusValues() []PartitionAccessStatus { + return []PartitionAccessStatus{PartitionAccessStatusGranted, PartitionAccessStatusInvalid, PartitionAccessStatusNotPrimary, PartitionAccessStatusNoWriteQuorum, PartitionAccessStatusReconfigurationPending} +} + +// PartitionScheme enumerates the values for partition scheme. +type PartitionScheme string + +const ( + // PartitionSchemeInvalid Indicates the partition kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + PartitionSchemeInvalid PartitionScheme = "Invalid" + // PartitionSchemeNamed Indicates that the partition is based on string names, and is a + // NamedPartitionSchemeDescription object. The value is 3 + PartitionSchemeNamed PartitionScheme = "Named" + // PartitionSchemeSingleton Indicates that the partition is based on string names, and is a + // SingletonPartitionSchemeDescription object, The value is 1. + PartitionSchemeSingleton PartitionScheme = "Singleton" + // PartitionSchemeUniformInt64Range Indicates that the partition is based on Int64 key ranges, and is a + // UniformInt64RangePartitionSchemeDescription object. The value is 2. + PartitionSchemeUniformInt64Range PartitionScheme = "UniformInt64Range" +) + +// PossiblePartitionSchemeValues returns an array of possible values for the PartitionScheme const type. +func PossiblePartitionSchemeValues() []PartitionScheme { + return []PartitionScheme{PartitionSchemeInvalid, PartitionSchemeNamed, PartitionSchemeSingleton, PartitionSchemeUniformInt64Range} +} + +// PartitionSchemeBasicPartitionSchemeDescription enumerates the values for partition scheme basic partition +// scheme description. +type PartitionSchemeBasicPartitionSchemeDescription string + +const ( + // PartitionSchemeNamed1 ... + PartitionSchemeNamed1 PartitionSchemeBasicPartitionSchemeDescription = "Named" + // PartitionSchemePartitionSchemeDescription ... + PartitionSchemePartitionSchemeDescription PartitionSchemeBasicPartitionSchemeDescription = "PartitionSchemeDescription" + // PartitionSchemeSingleton1 ... + PartitionSchemeSingleton1 PartitionSchemeBasicPartitionSchemeDescription = "Singleton" + // PartitionSchemeUniformInt64Range1 ... + PartitionSchemeUniformInt64Range1 PartitionSchemeBasicPartitionSchemeDescription = "UniformInt64Range" +) + +// PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues returns an array of possible values for the PartitionSchemeBasicPartitionSchemeDescription const type. +func PossiblePartitionSchemeBasicPartitionSchemeDescriptionValues() []PartitionSchemeBasicPartitionSchemeDescription { + return []PartitionSchemeBasicPartitionSchemeDescription{PartitionSchemeNamed1, PartitionSchemePartitionSchemeDescription, PartitionSchemeSingleton1, PartitionSchemeUniformInt64Range1} +} + +// PropertyBatchInfoKind enumerates the values for property batch info kind. +type PropertyBatchInfoKind string + +const ( + // PropertyBatchInfoKindFailed The property batch failed. + PropertyBatchInfoKindFailed PropertyBatchInfoKind = "Failed" + // PropertyBatchInfoKindInvalid Indicates the property batch info is invalid. All Service Fabric + // enumerations have the invalid type. + PropertyBatchInfoKindInvalid PropertyBatchInfoKind = "Invalid" + // PropertyBatchInfoKindSuccessful The property batch succeeded. + PropertyBatchInfoKindSuccessful PropertyBatchInfoKind = "Successful" +) + +// PossiblePropertyBatchInfoKindValues returns an array of possible values for the PropertyBatchInfoKind const type. +func PossiblePropertyBatchInfoKindValues() []PropertyBatchInfoKind { + return []PropertyBatchInfoKind{PropertyBatchInfoKindFailed, PropertyBatchInfoKindInvalid, PropertyBatchInfoKindSuccessful} +} + +// PropertyBatchOperationKind enumerates the values for property batch operation kind. +type PropertyBatchOperationKind string + +const ( + // PropertyBatchOperationKindCheckExists The operation will check that a property exists or doesn't exists, + // depending on the provided value. The value is 3. + PropertyBatchOperationKindCheckExists PropertyBatchOperationKind = "CheckExists" + // PropertyBatchOperationKindCheckSequence The operation will ensure that the sequence number is equal to + // the provided value. The value is 4. + PropertyBatchOperationKindCheckSequence PropertyBatchOperationKind = "CheckSequence" + // PropertyBatchOperationKindCheckValue The operation will ensure that the value of a property is equal to + // the provided value. The value is 7. + PropertyBatchOperationKindCheckValue PropertyBatchOperationKind = "CheckValue" + // PropertyBatchOperationKindDelete The operation will delete a property. The value is 5. + PropertyBatchOperationKindDelete PropertyBatchOperationKind = "Delete" + // PropertyBatchOperationKindGet The operation will get a property. The value is 2. + PropertyBatchOperationKindGet PropertyBatchOperationKind = "Get" + // PropertyBatchOperationKindInvalid Indicates the property operation is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + PropertyBatchOperationKindInvalid PropertyBatchOperationKind = "Invalid" + // PropertyBatchOperationKindPut The operation will create or edit a property. The value is 1. + PropertyBatchOperationKindPut PropertyBatchOperationKind = "Put" +) + +// PossiblePropertyBatchOperationKindValues returns an array of possible values for the PropertyBatchOperationKind const type. +func PossiblePropertyBatchOperationKindValues() []PropertyBatchOperationKind { + return []PropertyBatchOperationKind{PropertyBatchOperationKindCheckExists, PropertyBatchOperationKindCheckSequence, PropertyBatchOperationKindCheckValue, PropertyBatchOperationKindDelete, PropertyBatchOperationKindGet, PropertyBatchOperationKindInvalid, PropertyBatchOperationKindPut} +} + +// PropertyValueKind enumerates the values for property value kind. +type PropertyValueKind string + +const ( + // PropertyValueKindBinary The data inside the property is a binary blob. The value is 1. + PropertyValueKindBinary PropertyValueKind = "Binary" + // PropertyValueKindDouble The data inside the property is a double. The value is 3. + PropertyValueKindDouble PropertyValueKind = "Double" + // PropertyValueKindGUID The data inside the property is a guid. The value is 5. + PropertyValueKindGUID PropertyValueKind = "Guid" + // PropertyValueKindInt64 The data inside the property is an int64. The value is 2. + PropertyValueKindInt64 PropertyValueKind = "Int64" + // PropertyValueKindInvalid Indicates the property is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + PropertyValueKindInvalid PropertyValueKind = "Invalid" + // PropertyValueKindString The data inside the property is a string. The value is 4. + PropertyValueKindString PropertyValueKind = "String" +) + +// PossiblePropertyValueKindValues returns an array of possible values for the PropertyValueKind const type. +func PossiblePropertyValueKindValues() []PropertyValueKind { + return []PropertyValueKind{PropertyValueKindBinary, PropertyValueKindDouble, PropertyValueKindGUID, PropertyValueKindInt64, PropertyValueKindInvalid, PropertyValueKindString} +} + +// ProvisionApplicationTypeKind enumerates the values for provision application type kind. +type ProvisionApplicationTypeKind string + +const ( + // ProvisionApplicationTypeKindExternalStore Indicates that the provision is for an application package + // that was previously uploaded to an external store. The application package ends with the extension + // *.sfpkg. The value is 2. + ProvisionApplicationTypeKindExternalStore ProvisionApplicationTypeKind = "ExternalStore" + // ProvisionApplicationTypeKindImageStorePath Indicates that the provision is for a package that was + // previously uploaded to the image store. The value is 1. + ProvisionApplicationTypeKindImageStorePath ProvisionApplicationTypeKind = "ImageStorePath" + // ProvisionApplicationTypeKindInvalid Indicates that the provision kind is invalid. This value is default + // and should not be used. The value is zero. + ProvisionApplicationTypeKindInvalid ProvisionApplicationTypeKind = "Invalid" +) + +// PossibleProvisionApplicationTypeKindValues returns an array of possible values for the ProvisionApplicationTypeKind const type. +func PossibleProvisionApplicationTypeKindValues() []ProvisionApplicationTypeKind { + return []ProvisionApplicationTypeKind{ProvisionApplicationTypeKindExternalStore, ProvisionApplicationTypeKindImageStorePath, ProvisionApplicationTypeKindInvalid} +} + +// QuorumLossMode enumerates the values for quorum loss mode. +type QuorumLossMode string + +const ( + // QuorumLossModeAllReplicas ... + QuorumLossModeAllReplicas QuorumLossMode = "AllReplicas" + // QuorumLossModeInvalid Reserved. Do not pass into API. + QuorumLossModeInvalid QuorumLossMode = "Invalid" + // QuorumLossModeQuorumReplicas Partial Quorum loss mode : Minimum number of replicas for a partition will + // be down that will cause a quorum loss. + QuorumLossModeQuorumReplicas QuorumLossMode = "QuorumReplicas" +) + +// PossibleQuorumLossModeValues returns an array of possible values for the QuorumLossMode const type. +func PossibleQuorumLossModeValues() []QuorumLossMode { + return []QuorumLossMode{QuorumLossModeAllReplicas, QuorumLossModeInvalid, QuorumLossModeQuorumReplicas} +} + +// ReconfigurationPhase enumerates the values for reconfiguration phase. +type ReconfigurationPhase string + +const ( + // ReconfigurationPhaseAbortPhaseZero This phase is for internal use only. + ReconfigurationPhaseAbortPhaseZero ReconfigurationPhase = "AbortPhaseZero" + // ReconfigurationPhaseNone Specifies that there is no reconfiguration in progress. + ReconfigurationPhaseNone ReconfigurationPhase = "None" + // ReconfigurationPhasePhase0 Refers to the phase where the reconfiguration is transferring data from the + // previous primary to the new primary. + ReconfigurationPhasePhase0 ReconfigurationPhase = "Phase0" + // ReconfigurationPhasePhase1 Refers to the phase where the reconfiguration is querying the replica set for + // the progress. + ReconfigurationPhasePhase1 ReconfigurationPhase = "Phase1" + // ReconfigurationPhasePhase2 Refers to the phase where the reconfiguration is ensuring that data from the + // current primary is present in a majority of the replica set. + ReconfigurationPhasePhase2 ReconfigurationPhase = "Phase2" + // ReconfigurationPhasePhase3 This phase is for internal use only. + ReconfigurationPhasePhase3 ReconfigurationPhase = "Phase3" + // ReconfigurationPhasePhase4 This phase is for internal use only. + ReconfigurationPhasePhase4 ReconfigurationPhase = "Phase4" + // ReconfigurationPhaseUnknown Indicates the invalid reconfiguration phase. + ReconfigurationPhaseUnknown ReconfigurationPhase = "Unknown" +) + +// PossibleReconfigurationPhaseValues returns an array of possible values for the ReconfigurationPhase const type. +func PossibleReconfigurationPhaseValues() []ReconfigurationPhase { + return []ReconfigurationPhase{ReconfigurationPhaseAbortPhaseZero, ReconfigurationPhaseNone, ReconfigurationPhasePhase0, ReconfigurationPhasePhase1, ReconfigurationPhasePhase2, ReconfigurationPhasePhase3, ReconfigurationPhasePhase4, ReconfigurationPhaseUnknown} +} + +// ReconfigurationType enumerates the values for reconfiguration type. +type ReconfigurationType string + +const ( + // ReconfigurationTypeFailover Reconfiguration triggered in response to a primary going down. This could be + // due to many reasons such as primary replica crashing etc. + ReconfigurationTypeFailover ReconfigurationType = "Failover" + // ReconfigurationTypeOther Reconfigurations where the primary replica is not changing. + ReconfigurationTypeOther ReconfigurationType = "Other" + // ReconfigurationTypeSwapPrimary Specifies that the primary replica is being swapped with a different + // replica. + ReconfigurationTypeSwapPrimary ReconfigurationType = "SwapPrimary" + // ReconfigurationTypeUnknown Indicates the invalid reconfiguration type. + ReconfigurationTypeUnknown ReconfigurationType = "Unknown" +) + +// PossibleReconfigurationTypeValues returns an array of possible values for the ReconfigurationType const type. +func PossibleReconfigurationTypeValues() []ReconfigurationType { + return []ReconfigurationType{ReconfigurationTypeFailover, ReconfigurationTypeOther, ReconfigurationTypeSwapPrimary, ReconfigurationTypeUnknown} +} + +// RepairImpactKind enumerates the values for repair impact kind. +type RepairImpactKind string + +const ( + // RepairImpactKindInvalid The repair impact is not valid or is of an unknown type. + RepairImpactKindInvalid RepairImpactKind = "Invalid" + // RepairImpactKindNode The repair impact affects a set of Service Fabric nodes. + RepairImpactKindNode RepairImpactKind = "Node" +) + +// PossibleRepairImpactKindValues returns an array of possible values for the RepairImpactKind const type. +func PossibleRepairImpactKindValues() []RepairImpactKind { + return []RepairImpactKind{RepairImpactKindInvalid, RepairImpactKindNode} +} + +// RepairTargetKind enumerates the values for repair target kind. +type RepairTargetKind string + +const ( + // RepairTargetKindInvalid The repair target is not valid or is of an unknown type. + RepairTargetKindInvalid RepairTargetKind = "Invalid" + // RepairTargetKindNode The repair target is a set of Service Fabric nodes. + RepairTargetKindNode RepairTargetKind = "Node" +) + +// PossibleRepairTargetKindValues returns an array of possible values for the RepairTargetKind const type. +func PossibleRepairTargetKindValues() []RepairTargetKind { + return []RepairTargetKind{RepairTargetKindInvalid, RepairTargetKindNode} +} + +// RepairTaskHealthCheckState enumerates the values for repair task health check state. +type RepairTaskHealthCheckState string + +const ( + // InProgress Indicates that the health check is in progress. + InProgress RepairTaskHealthCheckState = "InProgress" + // NotStarted Indicates that the health check has not started. + NotStarted RepairTaskHealthCheckState = "NotStarted" + // Skipped Indicates that the health check was skipped. + Skipped RepairTaskHealthCheckState = "Skipped" + // Succeeded Indicates that the health check succeeded. + Succeeded RepairTaskHealthCheckState = "Succeeded" + // TimedOut Indicates that the health check timed out. + TimedOut RepairTaskHealthCheckState = "TimedOut" +) + +// PossibleRepairTaskHealthCheckStateValues returns an array of possible values for the RepairTaskHealthCheckState const type. +func PossibleRepairTaskHealthCheckStateValues() []RepairTaskHealthCheckState { + return []RepairTaskHealthCheckState{InProgress, NotStarted, Skipped, Succeeded, TimedOut} +} + +// ReplicaHealthReportServiceKind enumerates the values for replica health report service kind. +type ReplicaHealthReportServiceKind string + +const ( + // Stateful Uses Service Fabric to make its state or part of its state highly available and reliable. The + // value is 2. + Stateful ReplicaHealthReportServiceKind = "Stateful" + // Stateless Does not use Service Fabric to make its state highly available or reliable. The value is 1 + Stateless ReplicaHealthReportServiceKind = "Stateless" +) + +// PossibleReplicaHealthReportServiceKindValues returns an array of possible values for the ReplicaHealthReportServiceKind const type. +func PossibleReplicaHealthReportServiceKindValues() []ReplicaHealthReportServiceKind { + return []ReplicaHealthReportServiceKind{Stateful, Stateless} +} + +// ReplicaKind enumerates the values for replica kind. +type ReplicaKind string + +const ( + // ReplicaKindInvalid Represents an invalid replica kind. The value is zero. + ReplicaKindInvalid ReplicaKind = "Invalid" + // ReplicaKindKeyValueStore Represents a key value store replica. The value is 1 + ReplicaKindKeyValueStore ReplicaKind = "KeyValueStore" +) + +// PossibleReplicaKindValues returns an array of possible values for the ReplicaKind const type. +func PossibleReplicaKindValues() []ReplicaKind { + return []ReplicaKind{ReplicaKindInvalid, ReplicaKindKeyValueStore} +} + +// ReplicaRole enumerates the values for replica role. +type ReplicaRole string + +const ( + // ReplicaRoleActiveSecondary Refers to a replica in the set that receives state updates from the Primary + // replica, applies them, and sends acknowledgements back. Secondary replicas must participate in the write + // quorum for a replica set. There can be multiple active Secondary replicas in a replica set at a time. + // The number of active Secondary replicas is configurable that the reliability subsystem should maintain. + // The value is 4. + ReplicaRoleActiveSecondary ReplicaRole = "ActiveSecondary" + // ReplicaRoleIdleSecondary Refers to a replica in the set that receives a state transfer from the Primary + // replica to prepare for becoming an active Secondary replica. There can be multiple Idle Secondary + // replicas in a replica set at a time. Idle Secondary replicas do not count as a part of a write quorum. + // The value is 3. + ReplicaRoleIdleSecondary ReplicaRole = "IdleSecondary" + // ReplicaRoleNone Specifies that the replica has no responsibility in regard to the replica set. The value + // is 1 + ReplicaRoleNone ReplicaRole = "None" + // ReplicaRolePrimary Refers to the replica in the set on which all read and write operations are complete + // in order to enforce strong consistency semantics. Read operations are handled directly by the Primary + // replica, while write operations must be acknowledged by a quorum of the replicas in the replica set. + // There can only be one Primary replica in a replica set at a time. The value is 2. + ReplicaRolePrimary ReplicaRole = "Primary" + // ReplicaRoleUnknown Indicates the initial role that a replica is created in. The value is zero. + ReplicaRoleUnknown ReplicaRole = "Unknown" +) + +// PossibleReplicaRoleValues returns an array of possible values for the ReplicaRole const type. +func PossibleReplicaRoleValues() []ReplicaRole { + return []ReplicaRole{ReplicaRoleActiveSecondary, ReplicaRoleIdleSecondary, ReplicaRoleNone, ReplicaRolePrimary, ReplicaRoleUnknown} +} + +// ReplicaStatus enumerates the values for replica status. +type ReplicaStatus string + +const ( + // ReplicaStatusDown The replica is down. The value is 4. + ReplicaStatusDown ReplicaStatus = "Down" + // ReplicaStatusDropped Replica is dropped. This means that the replica has been removed from the replica + // set. If it is persisted, its state has been deleted. The value is 5. + ReplicaStatusDropped ReplicaStatus = "Dropped" + // ReplicaStatusInBuild The replica is being built. This means that a primary replica is seeding this + // replica. The value is 1. + ReplicaStatusInBuild ReplicaStatus = "InBuild" + // ReplicaStatusInvalid Indicates the replica status is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + ReplicaStatusInvalid ReplicaStatus = "Invalid" + // ReplicaStatusReady The replica is ready. The value is 3. + ReplicaStatusReady ReplicaStatus = "Ready" + // ReplicaStatusStandby The replica is in standby. The value is 2. + ReplicaStatusStandby ReplicaStatus = "Standby" +) + +// PossibleReplicaStatusValues returns an array of possible values for the ReplicaStatus const type. +func PossibleReplicaStatusValues() []ReplicaStatus { + return []ReplicaStatus{ReplicaStatusDown, ReplicaStatusDropped, ReplicaStatusInBuild, ReplicaStatusInvalid, ReplicaStatusReady, ReplicaStatusStandby} +} + +// ReplicatorOperationName enumerates the values for replicator operation name. +type ReplicatorOperationName string + +const ( + // ReplicatorOperationNameAbort Replicator is being aborted. + ReplicatorOperationNameAbort ReplicatorOperationName = "Abort" + // ReplicatorOperationNameBuild Replicator is in the process of building one or more replicas. + ReplicatorOperationNameBuild ReplicatorOperationName = "Build" + // ReplicatorOperationNameChangeRole Replicator is in the process of changing its role. + ReplicatorOperationNameChangeRole ReplicatorOperationName = "ChangeRole" + // ReplicatorOperationNameClose Replicator is closing. + ReplicatorOperationNameClose ReplicatorOperationName = "Close" + // ReplicatorOperationNameInvalid Default value if the replicator is not yet ready. + ReplicatorOperationNameInvalid ReplicatorOperationName = "Invalid" + // ReplicatorOperationNameNone Replicator is not running any operation from Service Fabric perspective. + ReplicatorOperationNameNone ReplicatorOperationName = "None" + // ReplicatorOperationNameOnDataLoss Replicator is handling the data loss condition, where the user service + // may potentially be recovering state from an external source. + ReplicatorOperationNameOnDataLoss ReplicatorOperationName = "OnDataLoss" + // ReplicatorOperationNameOpen Replicator is opening. + ReplicatorOperationNameOpen ReplicatorOperationName = "Open" + // ReplicatorOperationNameUpdateEpoch Due to a change in the replica set, replicator is being updated with + // its Epoch. + ReplicatorOperationNameUpdateEpoch ReplicatorOperationName = "UpdateEpoch" + // ReplicatorOperationNameWaitForCatchup Replicator is waiting for a quorum of replicas to be caught up to + // the latest state. + ReplicatorOperationNameWaitForCatchup ReplicatorOperationName = "WaitForCatchup" +) + +// PossibleReplicatorOperationNameValues returns an array of possible values for the ReplicatorOperationName const type. +func PossibleReplicatorOperationNameValues() []ReplicatorOperationName { + return []ReplicatorOperationName{ReplicatorOperationNameAbort, ReplicatorOperationNameBuild, ReplicatorOperationNameChangeRole, ReplicatorOperationNameClose, ReplicatorOperationNameInvalid, ReplicatorOperationNameNone, ReplicatorOperationNameOnDataLoss, ReplicatorOperationNameOpen, ReplicatorOperationNameUpdateEpoch, ReplicatorOperationNameWaitForCatchup} +} + +// ResourceStatus enumerates the values for resource status. +type ResourceStatus string + +const ( + // ResourceStatusCreating Indicates the resource is being created. The value is 3. + ResourceStatusCreating ResourceStatus = "Creating" + // ResourceStatusDeleting Indicates the resource is being deletd. The value is 4. + ResourceStatusDeleting ResourceStatus = "Deleting" + // ResourceStatusFailed Indicates the resource is not functional due to persistent failures. See + // statusDetails property for more details. The value is 5. + ResourceStatusFailed ResourceStatus = "Failed" + // ResourceStatusReady Indicates the resource is ready. The value is 1. + ResourceStatusReady ResourceStatus = "Ready" + // ResourceStatusUnknown Indicates the resource status is unknown. The value is zero. + ResourceStatusUnknown ResourceStatus = "Unknown" + // ResourceStatusUpgrading Indicates the resource is upgrading. The value is 2. + ResourceStatusUpgrading ResourceStatus = "Upgrading" +) + +// PossibleResourceStatusValues returns an array of possible values for the ResourceStatus const type. +func PossibleResourceStatusValues() []ResourceStatus { + return []ResourceStatus{ResourceStatusCreating, ResourceStatusDeleting, ResourceStatusFailed, ResourceStatusReady, ResourceStatusUnknown, ResourceStatusUpgrading} +} + +// RestartPartitionMode enumerates the values for restart partition mode. +type RestartPartitionMode string + +const ( + // RestartPartitionModeAllReplicasOrInstances All replicas or instances in the partition are restarted at + // once. + RestartPartitionModeAllReplicasOrInstances RestartPartitionMode = "AllReplicasOrInstances" + // RestartPartitionModeInvalid Reserved. Do not pass into API. + RestartPartitionModeInvalid RestartPartitionMode = "Invalid" + // RestartPartitionModeOnlyActiveSecondaries Only the secondary replicas are restarted. + RestartPartitionModeOnlyActiveSecondaries RestartPartitionMode = "OnlyActiveSecondaries" +) + +// PossibleRestartPartitionModeValues returns an array of possible values for the RestartPartitionMode const type. +func PossibleRestartPartitionModeValues() []RestartPartitionMode { + return []RestartPartitionMode{RestartPartitionModeAllReplicasOrInstances, RestartPartitionModeInvalid, RestartPartitionModeOnlyActiveSecondaries} +} + +// RestoreState enumerates the values for restore state. +type RestoreState string + +const ( + // RestoreStateAccepted Operation has been validated and accepted. Restore is yet to be triggered. + RestoreStateAccepted RestoreState = "Accepted" + // RestoreStateFailure Operation completed with failure. + RestoreStateFailure RestoreState = "Failure" + // RestoreStateInvalid Indicates an invalid restore state. All Service Fabric enumerations have the invalid + // type. + RestoreStateInvalid RestoreState = "Invalid" + // RestoreStateRestoreInProgress Restore operation has been triggered and is under process. + RestoreStateRestoreInProgress RestoreState = "RestoreInProgress" + // RestoreStateSuccess Operation completed with success. + RestoreStateSuccess RestoreState = "Success" + // RestoreStateTimeout Operation timed out. + RestoreStateTimeout RestoreState = "Timeout" +) + +// PossibleRestoreStateValues returns an array of possible values for the RestoreState const type. +func PossibleRestoreStateValues() []RestoreState { + return []RestoreState{RestoreStateAccepted, RestoreStateFailure, RestoreStateInvalid, RestoreStateRestoreInProgress, RestoreStateSuccess, RestoreStateTimeout} +} + +// ResultStatus enumerates the values for result status. +type ResultStatus string + +const ( + // ResultStatusCancelled Indicates that the repair task was cancelled prior to execution. + ResultStatusCancelled ResultStatus = "Cancelled" + // ResultStatusFailed Indicates that there was a failure during execution of the repair task. Some work may + // have been performed. + ResultStatusFailed ResultStatus = "Failed" + // ResultStatusInterrupted Indicates that execution of the repair task was interrupted by a cancellation + // request after some work had already been performed. + ResultStatusInterrupted ResultStatus = "Interrupted" + // ResultStatusInvalid Indicates that the repair task result is invalid. All Service Fabric enumerations + // have the invalid value. + ResultStatusInvalid ResultStatus = "Invalid" + // ResultStatusPending Indicates that the repair task result is not yet available, because the repair task + // has not finished executing. + ResultStatusPending ResultStatus = "Pending" + // ResultStatusSucceeded Indicates that the repair task completed execution successfully. + ResultStatusSucceeded ResultStatus = "Succeeded" +) + +// PossibleResultStatusValues returns an array of possible values for the ResultStatus const type. +func PossibleResultStatusValues() []ResultStatus { + return []ResultStatus{ResultStatusCancelled, ResultStatusFailed, ResultStatusInterrupted, ResultStatusInvalid, ResultStatusPending, ResultStatusSucceeded} +} + +// RetentionPolicyType enumerates the values for retention policy type. +type RetentionPolicyType string + +const ( + // RetentionPolicyTypeBasic Indicates a basic retention policy type. + RetentionPolicyTypeBasic RetentionPolicyType = "Basic" + // RetentionPolicyTypeInvalid Indicates an invalid retention policy type. + RetentionPolicyTypeInvalid RetentionPolicyType = "Invalid" +) + +// PossibleRetentionPolicyTypeValues returns an array of possible values for the RetentionPolicyType const type. +func PossibleRetentionPolicyTypeValues() []RetentionPolicyType { + return []RetentionPolicyType{RetentionPolicyTypeBasic, RetentionPolicyTypeInvalid} +} + +// RetentionPolicyTypeBasicRetentionPolicyDescription enumerates the values for retention policy type basic +// retention policy description. +type RetentionPolicyTypeBasicRetentionPolicyDescription string + +const ( + // RetentionPolicyTypeBasic1 ... + RetentionPolicyTypeBasic1 RetentionPolicyTypeBasicRetentionPolicyDescription = "Basic" + // RetentionPolicyTypeRetentionPolicyDescription ... + RetentionPolicyTypeRetentionPolicyDescription RetentionPolicyTypeBasicRetentionPolicyDescription = "RetentionPolicyDescription" +) + +// PossibleRetentionPolicyTypeBasicRetentionPolicyDescriptionValues returns an array of possible values for the RetentionPolicyTypeBasicRetentionPolicyDescription const type. +func PossibleRetentionPolicyTypeBasicRetentionPolicyDescriptionValues() []RetentionPolicyTypeBasicRetentionPolicyDescription { + return []RetentionPolicyTypeBasicRetentionPolicyDescription{RetentionPolicyTypeBasic1, RetentionPolicyTypeRetentionPolicyDescription} +} + +// SafetyCheckKind enumerates the values for safety check kind. +type SafetyCheckKind string + +const ( + // SafetyCheckKindEnsureAvailability Indicates that there is either a stateless service partition on the + // node having exactly one instance, or there is a primary replica on the node for which the partition is + // quorum loss. In both cases, bringing down the replicas due to upgrade will result in loss of + // availability. The value is 7. + SafetyCheckKindEnsureAvailability SafetyCheckKind = "EnsureAvailability" + // SafetyCheckKindEnsurePartitionQuorum Indicates that there is some partition for which if we bring down + // the replica on the node, it will result in quorum loss for that partition. The value is 2. + SafetyCheckKindEnsurePartitionQuorum SafetyCheckKind = "EnsurePartitionQuorum" + // SafetyCheckKindEnsureSeedNodeQuorum Indicates that if we bring down the node then this will result in + // global seed node quorum loss. The value is 1. + SafetyCheckKindEnsureSeedNodeQuorum SafetyCheckKind = "EnsureSeedNodeQuorum" + // SafetyCheckKindInvalid Indicates that the upgrade safety check kind is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + SafetyCheckKindInvalid SafetyCheckKind = "Invalid" + // SafetyCheckKindWaitForInbuildReplica Indicates that there is either a replica on the node that is going + // through copy, or there is a primary replica on the node that is copying data to some other replica. In + // both cases, bringing down the replica on the node due to upgrade will abort the copy. The value is 6. + SafetyCheckKindWaitForInbuildReplica SafetyCheckKind = "WaitForInbuildReplica" + // SafetyCheckKindWaitForPrimaryPlacement Indicates that there is some replica on the node that was moved + // out of this node due to upgrade. Service Fabric is now waiting for the primary to be moved back to this + // node. The value is 3. + SafetyCheckKindWaitForPrimaryPlacement SafetyCheckKind = "WaitForPrimaryPlacement" + // SafetyCheckKindWaitForPrimarySwap Indicates that Service Fabric is waiting for a primary replica to be + // moved out of the node before starting upgrade on that node. The value is 4. + SafetyCheckKindWaitForPrimarySwap SafetyCheckKind = "WaitForPrimarySwap" + // SafetyCheckKindWaitForReconfiguration Indicates that there is some replica on the node that is involved + // in a reconfiguration. Service Fabric is waiting for the reconfiguration to be complete before staring + // upgrade on that node. The value is 5. + SafetyCheckKindWaitForReconfiguration SafetyCheckKind = "WaitForReconfiguration" +) + +// PossibleSafetyCheckKindValues returns an array of possible values for the SafetyCheckKind const type. +func PossibleSafetyCheckKindValues() []SafetyCheckKind { + return []SafetyCheckKind{SafetyCheckKindEnsureAvailability, SafetyCheckKindEnsurePartitionQuorum, SafetyCheckKindEnsureSeedNodeQuorum, SafetyCheckKindInvalid, SafetyCheckKindWaitForInbuildReplica, SafetyCheckKindWaitForPrimaryPlacement, SafetyCheckKindWaitForPrimarySwap, SafetyCheckKindWaitForReconfiguration} +} + +// ScalingMechanismKind enumerates the values for scaling mechanism kind. +type ScalingMechanismKind string + +const ( + // ScalingMechanismKindAddRemoveIncrementalNamedPartition Indicates a mechanism for scaling where new named + // partitions are added or removed from a service. The value is 2. + ScalingMechanismKindAddRemoveIncrementalNamedPartition ScalingMechanismKind = "AddRemoveIncrementalNamedPartition" + // ScalingMechanismKindInvalid Indicates the scaling mechanism is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ScalingMechanismKindInvalid ScalingMechanismKind = "Invalid" + // ScalingMechanismKindPartitionInstanceCount Indicates a mechanism for scaling where new instances are + // added or removed from a partition. The value is 1. + ScalingMechanismKindPartitionInstanceCount ScalingMechanismKind = "PartitionInstanceCount" +) + +// PossibleScalingMechanismKindValues returns an array of possible values for the ScalingMechanismKind const type. +func PossibleScalingMechanismKindValues() []ScalingMechanismKind { + return []ScalingMechanismKind{ScalingMechanismKindAddRemoveIncrementalNamedPartition, ScalingMechanismKindInvalid, ScalingMechanismKindPartitionInstanceCount} +} + +// ScalingTriggerKind enumerates the values for scaling trigger kind. +type ScalingTriggerKind string + +const ( + // ScalingTriggerKindAveragePartitionLoad Indicates a trigger where scaling decisions are made based on + // average load of a partition. The value is 1. + ScalingTriggerKindAveragePartitionLoad ScalingTriggerKind = "AveragePartitionLoad" + // ScalingTriggerKindAverageServiceLoad Indicates a trigger where scaling decisions are made based on + // average load of a service. The value is 2. + ScalingTriggerKindAverageServiceLoad ScalingTriggerKind = "AverageServiceLoad" + // ScalingTriggerKindInvalid Indicates the scaling trigger is invalid. All Service Fabric enumerations have + // the invalid type. The value is zero. + ScalingTriggerKindInvalid ScalingTriggerKind = "Invalid" +) + +// PossibleScalingTriggerKindValues returns an array of possible values for the ScalingTriggerKind const type. +func PossibleScalingTriggerKindValues() []ScalingTriggerKind { + return []ScalingTriggerKind{ScalingTriggerKindAveragePartitionLoad, ScalingTriggerKindAverageServiceLoad, ScalingTriggerKindInvalid} +} + +// ScheduleKind enumerates the values for schedule kind. +type ScheduleKind string + +const ( + // ScheduleKindBackupScheduleDescription ... + ScheduleKindBackupScheduleDescription ScheduleKind = "BackupScheduleDescription" + // ScheduleKindFrequencyBased ... + ScheduleKindFrequencyBased ScheduleKind = "FrequencyBased" + // ScheduleKindTimeBased ... + ScheduleKindTimeBased ScheduleKind = "TimeBased" +) + +// PossibleScheduleKindValues returns an array of possible values for the ScheduleKind const type. +func PossibleScheduleKindValues() []ScheduleKind { + return []ScheduleKind{ScheduleKindBackupScheduleDescription, ScheduleKindFrequencyBased, ScheduleKindTimeBased} +} + +// SecretKind enumerates the values for secret kind. +type SecretKind string + +const ( + // InlinedValue A simple secret resource whose plaintext value is provided by the user. + InlinedValue SecretKind = "inlinedValue" +) + +// PossibleSecretKindValues returns an array of possible values for the SecretKind const type. +func PossibleSecretKindValues() []SecretKind { + return []SecretKind{InlinedValue} +} + +// ServiceCorrelationScheme enumerates the values for service correlation scheme. +type ServiceCorrelationScheme string + +const ( + // ServiceCorrelationSchemeAffinity Indicates that this service has an affinity relationship with another + // service. Provided for backwards compatibility, consider preferring the Aligned or NonAlignedAffinity + // options. The value is 1. + ServiceCorrelationSchemeAffinity ServiceCorrelationScheme = "Affinity" + // ServiceCorrelationSchemeAlignedAffinity Aligned affinity ensures that the primaries of the partitions of + // the affinitized services are collocated on the same nodes. This is the default and is the same as + // selecting the Affinity scheme. The value is 2. + ServiceCorrelationSchemeAlignedAffinity ServiceCorrelationScheme = "AlignedAffinity" + // ServiceCorrelationSchemeInvalid An invalid correlation scheme. Cannot be used. The value is zero. + ServiceCorrelationSchemeInvalid ServiceCorrelationScheme = "Invalid" + // ServiceCorrelationSchemeNonAlignedAffinity Non-Aligned affinity guarantees that all replicas of each + // service will be placed on the same nodes. Unlike Aligned Affinity, this does not guarantee that replicas + // of particular role will be collocated. The value is 3. + ServiceCorrelationSchemeNonAlignedAffinity ServiceCorrelationScheme = "NonAlignedAffinity" +) + +// PossibleServiceCorrelationSchemeValues returns an array of possible values for the ServiceCorrelationScheme const type. +func PossibleServiceCorrelationSchemeValues() []ServiceCorrelationScheme { + return []ServiceCorrelationScheme{ServiceCorrelationSchemeAffinity, ServiceCorrelationSchemeAlignedAffinity, ServiceCorrelationSchemeInvalid, ServiceCorrelationSchemeNonAlignedAffinity} +} + +// ServiceEndpointRole enumerates the values for service endpoint role. +type ServiceEndpointRole string + +const ( + // ServiceEndpointRoleInvalid Indicates the service endpoint role is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ServiceEndpointRoleInvalid ServiceEndpointRole = "Invalid" + // ServiceEndpointRoleStatefulPrimary Indicates that the service endpoint is of a primary replica of a + // stateful service. The value is 2. + ServiceEndpointRoleStatefulPrimary ServiceEndpointRole = "StatefulPrimary" + // ServiceEndpointRoleStatefulSecondary Indicates that the service endpoint is of a secondary replica of a + // stateful service. The value is 3. + ServiceEndpointRoleStatefulSecondary ServiceEndpointRole = "StatefulSecondary" + // ServiceEndpointRoleStateless Indicates that the service endpoint is of a stateless service. The value is + // 1. + ServiceEndpointRoleStateless ServiceEndpointRole = "Stateless" +) + +// PossibleServiceEndpointRoleValues returns an array of possible values for the ServiceEndpointRole const type. +func PossibleServiceEndpointRoleValues() []ServiceEndpointRole { + return []ServiceEndpointRole{ServiceEndpointRoleInvalid, ServiceEndpointRoleStatefulPrimary, ServiceEndpointRoleStatefulSecondary, ServiceEndpointRoleStateless} +} + +// ServiceKind enumerates the values for service kind. +type ServiceKind string + +const ( + // ServiceKindInvalid Indicates the service kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + ServiceKindInvalid ServiceKind = "Invalid" + // ServiceKindStateful Uses Service Fabric to make its state or part of its state highly available and + // reliable. The value is 2. + ServiceKindStateful ServiceKind = "Stateful" + // ServiceKindStateless Does not use Service Fabric to make its state highly available or reliable. The + // value is 1. + ServiceKindStateless ServiceKind = "Stateless" +) + +// PossibleServiceKindValues returns an array of possible values for the ServiceKind const type. +func PossibleServiceKindValues() []ServiceKind { + return []ServiceKind{ServiceKindInvalid, ServiceKindStateful, ServiceKindStateless} +} + +// ServiceKindBasicDeployedServiceReplicaDetailInfo enumerates the values for service kind basic deployed +// service replica detail info. +type ServiceKindBasicDeployedServiceReplicaDetailInfo string + +const ( + // ServiceKindDeployedServiceReplicaDetailInfo ... + ServiceKindDeployedServiceReplicaDetailInfo ServiceKindBasicDeployedServiceReplicaDetailInfo = "DeployedServiceReplicaDetailInfo" + // ServiceKindStateful1 ... + ServiceKindStateful1 ServiceKindBasicDeployedServiceReplicaDetailInfo = "Stateful" + // ServiceKindStateless1 ... + ServiceKindStateless1 ServiceKindBasicDeployedServiceReplicaDetailInfo = "Stateless" +) + +// PossibleServiceKindBasicDeployedServiceReplicaDetailInfoValues returns an array of possible values for the ServiceKindBasicDeployedServiceReplicaDetailInfo const type. +func PossibleServiceKindBasicDeployedServiceReplicaDetailInfoValues() []ServiceKindBasicDeployedServiceReplicaDetailInfo { + return []ServiceKindBasicDeployedServiceReplicaDetailInfo{ServiceKindDeployedServiceReplicaDetailInfo, ServiceKindStateful1, ServiceKindStateless1} +} + +// ServiceKindBasicDeployedServiceReplicaInfo enumerates the values for service kind basic deployed service +// replica info. +type ServiceKindBasicDeployedServiceReplicaInfo string + +const ( + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo ServiceKindBasicDeployedServiceReplicaInfo = "DeployedServiceReplicaInfo" + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful ServiceKindBasicDeployedServiceReplicaInfo = "Stateful" + // ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless ... + ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless ServiceKindBasicDeployedServiceReplicaInfo = "Stateless" +) + +// PossibleServiceKindBasicDeployedServiceReplicaInfoValues returns an array of possible values for the ServiceKindBasicDeployedServiceReplicaInfo const type. +func PossibleServiceKindBasicDeployedServiceReplicaInfoValues() []ServiceKindBasicDeployedServiceReplicaInfo { + return []ServiceKindBasicDeployedServiceReplicaInfo{ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo, ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful, ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless} +} + +// ServiceKindBasicReplicaHealth enumerates the values for service kind basic replica health. +type ServiceKindBasicReplicaHealth string + +const ( + // ServiceKindBasicReplicaHealthServiceKindReplicaHealth ... + ServiceKindBasicReplicaHealthServiceKindReplicaHealth ServiceKindBasicReplicaHealth = "ReplicaHealth" + // ServiceKindBasicReplicaHealthServiceKindStateful ... + ServiceKindBasicReplicaHealthServiceKindStateful ServiceKindBasicReplicaHealth = "Stateful" + // ServiceKindBasicReplicaHealthServiceKindStateless ... + ServiceKindBasicReplicaHealthServiceKindStateless ServiceKindBasicReplicaHealth = "Stateless" +) + +// PossibleServiceKindBasicReplicaHealthValues returns an array of possible values for the ServiceKindBasicReplicaHealth const type. +func PossibleServiceKindBasicReplicaHealthValues() []ServiceKindBasicReplicaHealth { + return []ServiceKindBasicReplicaHealth{ServiceKindBasicReplicaHealthServiceKindReplicaHealth, ServiceKindBasicReplicaHealthServiceKindStateful, ServiceKindBasicReplicaHealthServiceKindStateless} +} + +// ServiceKindBasicReplicaHealthState enumerates the values for service kind basic replica health state. +type ServiceKindBasicReplicaHealthState string + +const ( + // ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState ... + ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState ServiceKindBasicReplicaHealthState = "ReplicaHealthState" + // ServiceKindBasicReplicaHealthStateServiceKindStateful ... + ServiceKindBasicReplicaHealthStateServiceKindStateful ServiceKindBasicReplicaHealthState = "Stateful" + // ServiceKindBasicReplicaHealthStateServiceKindStateless ... + ServiceKindBasicReplicaHealthStateServiceKindStateless ServiceKindBasicReplicaHealthState = "Stateless" +) + +// PossibleServiceKindBasicReplicaHealthStateValues returns an array of possible values for the ServiceKindBasicReplicaHealthState const type. +func PossibleServiceKindBasicReplicaHealthStateValues() []ServiceKindBasicReplicaHealthState { + return []ServiceKindBasicReplicaHealthState{ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState, ServiceKindBasicReplicaHealthStateServiceKindStateful, ServiceKindBasicReplicaHealthStateServiceKindStateless} +} + +// ServiceKindBasicReplicaInfo enumerates the values for service kind basic replica info. +type ServiceKindBasicReplicaInfo string + +const ( + // ServiceKindBasicReplicaInfoServiceKindReplicaInfo ... + ServiceKindBasicReplicaInfoServiceKindReplicaInfo ServiceKindBasicReplicaInfo = "ReplicaInfo" + // ServiceKindBasicReplicaInfoServiceKindStateful ... + ServiceKindBasicReplicaInfoServiceKindStateful ServiceKindBasicReplicaInfo = "Stateful" + // ServiceKindBasicReplicaInfoServiceKindStateless ... + ServiceKindBasicReplicaInfoServiceKindStateless ServiceKindBasicReplicaInfo = "Stateless" +) + +// PossibleServiceKindBasicReplicaInfoValues returns an array of possible values for the ServiceKindBasicReplicaInfo const type. +func PossibleServiceKindBasicReplicaInfoValues() []ServiceKindBasicReplicaInfo { + return []ServiceKindBasicReplicaInfo{ServiceKindBasicReplicaInfoServiceKindReplicaInfo, ServiceKindBasicReplicaInfoServiceKindStateful, ServiceKindBasicReplicaInfoServiceKindStateless} +} + +// ServiceKindBasicServiceDescription enumerates the values for service kind basic service description. +type ServiceKindBasicServiceDescription string + +const ( + // ServiceKindBasicServiceDescriptionServiceKindServiceDescription ... + ServiceKindBasicServiceDescriptionServiceKindServiceDescription ServiceKindBasicServiceDescription = "ServiceDescription" + // ServiceKindBasicServiceDescriptionServiceKindStateful ... + ServiceKindBasicServiceDescriptionServiceKindStateful ServiceKindBasicServiceDescription = "Stateful" + // ServiceKindBasicServiceDescriptionServiceKindStateless ... + ServiceKindBasicServiceDescriptionServiceKindStateless ServiceKindBasicServiceDescription = "Stateless" +) + +// PossibleServiceKindBasicServiceDescriptionValues returns an array of possible values for the ServiceKindBasicServiceDescription const type. +func PossibleServiceKindBasicServiceDescriptionValues() []ServiceKindBasicServiceDescription { + return []ServiceKindBasicServiceDescription{ServiceKindBasicServiceDescriptionServiceKindServiceDescription, ServiceKindBasicServiceDescriptionServiceKindStateful, ServiceKindBasicServiceDescriptionServiceKindStateless} +} + +// ServiceKindBasicServiceInfo enumerates the values for service kind basic service info. +type ServiceKindBasicServiceInfo string + +const ( + // ServiceKindBasicServiceInfoServiceKindServiceInfo ... + ServiceKindBasicServiceInfoServiceKindServiceInfo ServiceKindBasicServiceInfo = "ServiceInfo" + // ServiceKindBasicServiceInfoServiceKindStateful ... + ServiceKindBasicServiceInfoServiceKindStateful ServiceKindBasicServiceInfo = "Stateful" + // ServiceKindBasicServiceInfoServiceKindStateless ... + ServiceKindBasicServiceInfoServiceKindStateless ServiceKindBasicServiceInfo = "Stateless" +) + +// PossibleServiceKindBasicServiceInfoValues returns an array of possible values for the ServiceKindBasicServiceInfo const type. +func PossibleServiceKindBasicServiceInfoValues() []ServiceKindBasicServiceInfo { + return []ServiceKindBasicServiceInfo{ServiceKindBasicServiceInfoServiceKindServiceInfo, ServiceKindBasicServiceInfoServiceKindStateful, ServiceKindBasicServiceInfoServiceKindStateless} +} + +// ServiceKindBasicServicePartitionInfo enumerates the values for service kind basic service partition info. +type ServiceKindBasicServicePartitionInfo string + +const ( + // ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo ... + ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo ServiceKindBasicServicePartitionInfo = "ServicePartitionInfo" + // ServiceKindBasicServicePartitionInfoServiceKindStateful ... + ServiceKindBasicServicePartitionInfoServiceKindStateful ServiceKindBasicServicePartitionInfo = "Stateful" + // ServiceKindBasicServicePartitionInfoServiceKindStateless ... + ServiceKindBasicServicePartitionInfoServiceKindStateless ServiceKindBasicServicePartitionInfo = "Stateless" +) + +// PossibleServiceKindBasicServicePartitionInfoValues returns an array of possible values for the ServiceKindBasicServicePartitionInfo const type. +func PossibleServiceKindBasicServicePartitionInfoValues() []ServiceKindBasicServicePartitionInfo { + return []ServiceKindBasicServicePartitionInfo{ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo, ServiceKindBasicServicePartitionInfoServiceKindStateful, ServiceKindBasicServicePartitionInfoServiceKindStateless} +} + +// ServiceKindBasicServiceUpdateDescription enumerates the values for service kind basic service update +// description. +type ServiceKindBasicServiceUpdateDescription string + +const ( + // ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription ... + ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription ServiceKindBasicServiceUpdateDescription = "ServiceUpdateDescription" + // ServiceKindBasicServiceUpdateDescriptionServiceKindStateful ... + ServiceKindBasicServiceUpdateDescriptionServiceKindStateful ServiceKindBasicServiceUpdateDescription = "Stateful" + // ServiceKindBasicServiceUpdateDescriptionServiceKindStateless ... + ServiceKindBasicServiceUpdateDescriptionServiceKindStateless ServiceKindBasicServiceUpdateDescription = "Stateless" +) + +// PossibleServiceKindBasicServiceUpdateDescriptionValues returns an array of possible values for the ServiceKindBasicServiceUpdateDescription const type. +func PossibleServiceKindBasicServiceUpdateDescriptionValues() []ServiceKindBasicServiceUpdateDescription { + return []ServiceKindBasicServiceUpdateDescription{ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription, ServiceKindBasicServiceUpdateDescriptionServiceKindStateful, ServiceKindBasicServiceUpdateDescriptionServiceKindStateless} +} + +// ServiceLoadMetricWeight enumerates the values for service load metric weight. +type ServiceLoadMetricWeight string + +const ( + // ServiceLoadMetricWeightHigh Specifies the metric weight of the service load as High. The value is 3. + ServiceLoadMetricWeightHigh ServiceLoadMetricWeight = "High" + // ServiceLoadMetricWeightLow Specifies the metric weight of the service load as Low. The value is 1. + ServiceLoadMetricWeightLow ServiceLoadMetricWeight = "Low" + // ServiceLoadMetricWeightMedium Specifies the metric weight of the service load as Medium. The value is 2. + ServiceLoadMetricWeightMedium ServiceLoadMetricWeight = "Medium" + // ServiceLoadMetricWeightZero Disables resource balancing for this metric. This value is zero. + ServiceLoadMetricWeightZero ServiceLoadMetricWeight = "Zero" +) + +// PossibleServiceLoadMetricWeightValues returns an array of possible values for the ServiceLoadMetricWeight const type. +func PossibleServiceLoadMetricWeightValues() []ServiceLoadMetricWeight { + return []ServiceLoadMetricWeight{ServiceLoadMetricWeightHigh, ServiceLoadMetricWeightLow, ServiceLoadMetricWeightMedium, ServiceLoadMetricWeightZero} +} + +// ServiceOperationName enumerates the values for service operation name. +type ServiceOperationName string + +const ( + // ServiceOperationNameAbort The service replica or instance is being aborted. + ServiceOperationNameAbort ServiceOperationName = "Abort" + // ServiceOperationNameChangeRole The service replica is changing roles. + ServiceOperationNameChangeRole ServiceOperationName = "ChangeRole" + // ServiceOperationNameClose The service replica or instance is being closed. + ServiceOperationNameClose ServiceOperationName = "Close" + // ServiceOperationNameNone The service replica or instance is not going through any life-cycle changes. + ServiceOperationNameNone ServiceOperationName = "None" + // ServiceOperationNameOpen The service replica or instance is being opened. + ServiceOperationNameOpen ServiceOperationName = "Open" + // ServiceOperationNameUnknown Reserved for future use. + ServiceOperationNameUnknown ServiceOperationName = "Unknown" +) + +// PossibleServiceOperationNameValues returns an array of possible values for the ServiceOperationName const type. +func PossibleServiceOperationNameValues() []ServiceOperationName { + return []ServiceOperationName{ServiceOperationNameAbort, ServiceOperationNameChangeRole, ServiceOperationNameClose, ServiceOperationNameNone, ServiceOperationNameOpen, ServiceOperationNameUnknown} +} + +// ServicePackageActivationMode enumerates the values for service package activation mode. +type ServicePackageActivationMode string + +const ( + // ExclusiveProcess With this activation mode, each replica or instance of service, on a given node, will + // have its own dedicated activation of service package on a node. The value is 1. + ExclusiveProcess ServicePackageActivationMode = "ExclusiveProcess" + // SharedProcess This is the default activation mode. With this activation mode, replicas or instances from + // different partition(s) of service, on a given node, will share same activation of service package on a + // node. The value is zero. + SharedProcess ServicePackageActivationMode = "SharedProcess" +) + +// PossibleServicePackageActivationModeValues returns an array of possible values for the ServicePackageActivationMode const type. +func PossibleServicePackageActivationModeValues() []ServicePackageActivationMode { + return []ServicePackageActivationMode{ExclusiveProcess, SharedProcess} +} + +// ServicePartitionKind enumerates the values for service partition kind. +type ServicePartitionKind string + +const ( + // ServicePartitionKindInt64Range Indicates that the partition is based on Int64 key ranges, and + // UniformInt64RangePartitionSchemeDescription was specified while creating the service. The value is 2. + ServicePartitionKindInt64Range ServicePartitionKind = "Int64Range" + // ServicePartitionKindInvalid Indicates the partition kind is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ServicePartitionKindInvalid ServicePartitionKind = "Invalid" + // ServicePartitionKindNamed Indicates that the partition is based on string names, and + // NamedPartitionInformation was specified while creating the service. The value is 3. + ServicePartitionKindNamed ServicePartitionKind = "Named" + // ServicePartitionKindSingleton Indicates that there is only one partition, and + // SingletonPartitionSchemeDescription was specified while creating the service. The value is 1. + ServicePartitionKindSingleton ServicePartitionKind = "Singleton" +) + +// PossibleServicePartitionKindValues returns an array of possible values for the ServicePartitionKind const type. +func PossibleServicePartitionKindValues() []ServicePartitionKind { + return []ServicePartitionKind{ServicePartitionKindInt64Range, ServicePartitionKindInvalid, ServicePartitionKindNamed, ServicePartitionKindSingleton} +} + +// ServicePartitionKindBasicPartitionInformation enumerates the values for service partition kind basic +// partition information. +type ServicePartitionKindBasicPartitionInformation string + +const ( + // ServicePartitionKindInt64Range1 ... + ServicePartitionKindInt64Range1 ServicePartitionKindBasicPartitionInformation = "Int64Range" + // ServicePartitionKindNamed1 ... + ServicePartitionKindNamed1 ServicePartitionKindBasicPartitionInformation = "Named" + // ServicePartitionKindPartitionInformation ... + ServicePartitionKindPartitionInformation ServicePartitionKindBasicPartitionInformation = "PartitionInformation" + // ServicePartitionKindSingleton1 ... + ServicePartitionKindSingleton1 ServicePartitionKindBasicPartitionInformation = "Singleton" +) + +// PossibleServicePartitionKindBasicPartitionInformationValues returns an array of possible values for the ServicePartitionKindBasicPartitionInformation const type. +func PossibleServicePartitionKindBasicPartitionInformationValues() []ServicePartitionKindBasicPartitionInformation { + return []ServicePartitionKindBasicPartitionInformation{ServicePartitionKindInt64Range1, ServicePartitionKindNamed1, ServicePartitionKindPartitionInformation, ServicePartitionKindSingleton1} +} + +// ServicePartitionStatus enumerates the values for service partition status. +type ServicePartitionStatus string + +const ( + // ServicePartitionStatusDeleting Indicates that the partition is being deleted. The value is 5. + ServicePartitionStatusDeleting ServicePartitionStatus = "Deleting" + // ServicePartitionStatusInQuorumLoss Indicates that the partition is in quorum loss. This means that + // number of replicas that are up and participating in a replica set is less than MinReplicaSetSize for + // this partition. The value is 3. + ServicePartitionStatusInQuorumLoss ServicePartitionStatus = "InQuorumLoss" + // ServicePartitionStatusInvalid Indicates the partition status is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + ServicePartitionStatusInvalid ServicePartitionStatus = "Invalid" + // ServicePartitionStatusNotReady Indicates that the partition is not ready. This status is returned when + // none of the other states apply. The value is 2. + ServicePartitionStatusNotReady ServicePartitionStatus = "NotReady" + // ServicePartitionStatusReady Indicates that the partition is ready. This means that for a stateless + // service partition there is at least one instance that is up and for a stateful service partition the + // number of ready replicas is greater than or equal to the MinReplicaSetSize. The value is 1. + ServicePartitionStatusReady ServicePartitionStatus = "Ready" + // ServicePartitionStatusReconfiguring Indicates that the partition is undergoing reconfiguration of its + // replica sets. This can happen due to failover, upgrade, load balancing or addition or removal of + // replicas from the replica set. The value is 4. + ServicePartitionStatusReconfiguring ServicePartitionStatus = "Reconfiguring" +) + +// PossibleServicePartitionStatusValues returns an array of possible values for the ServicePartitionStatus const type. +func PossibleServicePartitionStatusValues() []ServicePartitionStatus { + return []ServicePartitionStatus{ServicePartitionStatusDeleting, ServicePartitionStatusInQuorumLoss, ServicePartitionStatusInvalid, ServicePartitionStatusNotReady, ServicePartitionStatusReady, ServicePartitionStatusReconfiguring} +} + +// ServicePlacementPolicyType enumerates the values for service placement policy type. +type ServicePlacementPolicyType string + +const ( + // ServicePlacementPolicyTypeInvalid Indicates the type of the placement policy is invalid. All Service + // Fabric enumerations have the invalid type. The value is zero. + ServicePlacementPolicyTypeInvalid ServicePlacementPolicyType = "Invalid" + // ServicePlacementPolicyTypeInvalidDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementInvalidDomainPolicyDescription, which indicates that a particular fault or upgrade + // domain cannot be used for placement of this service. The value is 1. + ServicePlacementPolicyTypeInvalidDomain ServicePlacementPolicyType = "InvalidDomain" + // ServicePlacementPolicyTypeNonPartiallyPlaceService Indicates that the ServicePlacementPolicyDescription + // is of type ServicePlacementNonPartiallyPlaceServicePolicyDescription, which indicates that if possible + // all replicas of a particular partition of the service should be placed atomically. The value is 5. + ServicePlacementPolicyTypeNonPartiallyPlaceService ServicePlacementPolicyType = "NonPartiallyPlaceService" + // ServicePlacementPolicyTypePreferredPrimaryDomain Indicates that the ServicePlacementPolicyDescription is + // of type ServicePlacementPreferPrimaryDomainPolicyDescription, which indicates that if possible the + // Primary replica for the partitions of the service should be located in a particular domain as an + // optimization. The value is 3. + ServicePlacementPolicyTypePreferredPrimaryDomain ServicePlacementPolicyType = "PreferredPrimaryDomain" + // ServicePlacementPolicyTypeRequiredDomain Indicates that the ServicePlacementPolicyDescription is of type + // ServicePlacementRequireDomainDistributionPolicyDescription indicating that the replicas of the service + // must be placed in a specific domain. The value is 2. + ServicePlacementPolicyTypeRequiredDomain ServicePlacementPolicyType = "RequiredDomain" + // ServicePlacementPolicyTypeRequiredDomainDistribution Indicates that the + // ServicePlacementPolicyDescription is of type ServicePlacementRequireDomainDistributionPolicyDescription, + // indicating that the system will disallow placement of any two replicas from the same partition in the + // same domain at any time. The value is 4. + ServicePlacementPolicyTypeRequiredDomainDistribution ServicePlacementPolicyType = "RequiredDomainDistribution" +) + +// PossibleServicePlacementPolicyTypeValues returns an array of possible values for the ServicePlacementPolicyType const type. +func PossibleServicePlacementPolicyTypeValues() []ServicePlacementPolicyType { + return []ServicePlacementPolicyType{ServicePlacementPolicyTypeInvalid, ServicePlacementPolicyTypeInvalidDomain, ServicePlacementPolicyTypeNonPartiallyPlaceService, ServicePlacementPolicyTypePreferredPrimaryDomain, ServicePlacementPolicyTypeRequiredDomain, ServicePlacementPolicyTypeRequiredDomainDistribution} +} + +// ServiceStatus enumerates the values for service status. +type ServiceStatus string + +const ( + // ServiceStatusActive Indicates the service status is active. The value is 1. + ServiceStatusActive ServiceStatus = "Active" + // ServiceStatusCreating Indicates the service is being created. The value is 4. + ServiceStatusCreating ServiceStatus = "Creating" + // ServiceStatusDeleting Indicates the service is being deleted. The value is 3. + ServiceStatusDeleting ServiceStatus = "Deleting" + // ServiceStatusFailed Indicates creation or deletion was terminated due to persistent failures. Another + // create/delete request can be accepted. The value is 5. + ServiceStatusFailed ServiceStatus = "Failed" + // ServiceStatusUnknown Indicates the service status is unknown. The value is zero. + ServiceStatusUnknown ServiceStatus = "Unknown" + // ServiceStatusUpgrading Indicates the service is upgrading. The value is 2. + ServiceStatusUpgrading ServiceStatus = "Upgrading" +) + +// PossibleServiceStatusValues returns an array of possible values for the ServiceStatus const type. +func PossibleServiceStatusValues() []ServiceStatus { + return []ServiceStatus{ServiceStatusActive, ServiceStatusCreating, ServiceStatusDeleting, ServiceStatusFailed, ServiceStatusUnknown, ServiceStatusUpgrading} +} + +// ServiceTypeRegistrationStatus enumerates the values for service type registration status. +type ServiceTypeRegistrationStatus string + +const ( + // ServiceTypeRegistrationStatusDisabled Indicates that the service type is disabled on this node. A type + // gets disabled when there are too many failures of the code package hosting the service type. If the + // service type is disabled, new replicas of that service type will not be placed on the node until it is + // enabled again. The service type is enabled again after the process hosting it comes up and re-registers + // the type or a preconfigured time interval has passed. The value is 1. + ServiceTypeRegistrationStatusDisabled ServiceTypeRegistrationStatus = "Disabled" + // ServiceTypeRegistrationStatusEnabled Indicates that the service type is enabled on this node. Replicas + // of this service type can be placed on this node when the code package registers the service type. The + // value is 2. + ServiceTypeRegistrationStatusEnabled ServiceTypeRegistrationStatus = "Enabled" + // ServiceTypeRegistrationStatusInvalid Indicates the registration status is invalid. All Service Fabric + // enumerations have the invalid type. The value is zero. + ServiceTypeRegistrationStatusInvalid ServiceTypeRegistrationStatus = "Invalid" + // ServiceTypeRegistrationStatusRegistered Indicates that the service type is enabled and registered on the + // node by a code package. Replicas of this service type can now be placed on this node. The value is 3. + ServiceTypeRegistrationStatusRegistered ServiceTypeRegistrationStatus = "Registered" +) + +// PossibleServiceTypeRegistrationStatusValues returns an array of possible values for the ServiceTypeRegistrationStatus const type. +func PossibleServiceTypeRegistrationStatusValues() []ServiceTypeRegistrationStatus { + return []ServiceTypeRegistrationStatus{ServiceTypeRegistrationStatusDisabled, ServiceTypeRegistrationStatusEnabled, ServiceTypeRegistrationStatusInvalid, ServiceTypeRegistrationStatusRegistered} +} + +// SizeTypes enumerates the values for size types. +type SizeTypes string + +const ( + // SizeTypesLarge ... + SizeTypesLarge SizeTypes = "Large" + // SizeTypesMedium ... + SizeTypesMedium SizeTypes = "Medium" + // SizeTypesSmall ... + SizeTypesSmall SizeTypes = "Small" +) + +// PossibleSizeTypesValues returns an array of possible values for the SizeTypes const type. +func PossibleSizeTypesValues() []SizeTypes { + return []SizeTypes{SizeTypesLarge, SizeTypesMedium, SizeTypesSmall} +} + +// State enumerates the values for state. +type State string + +const ( + // StateApproved Indicates that the repair task has been approved by the Repair Manager and is safe to + // execute. + StateApproved State = "Approved" + // StateClaimed Indicates that the repair task has been claimed by a repair executor. + StateClaimed State = "Claimed" + // StateCompleted Indicates that the repair task has completed, and no further state changes will occur. + StateCompleted State = "Completed" + // StateCreated Indicates that the repair task has been created. + StateCreated State = "Created" + // StateExecuting Indicates that execution of the repair task is in progress. + StateExecuting State = "Executing" + // StateInvalid Indicates that the repair task state is invalid. All Service Fabric enumerations have the + // invalid value. + StateInvalid State = "Invalid" + // StatePreparing Indicates that the Repair Manager is preparing the system to handle the impact of the + // repair task, usually by taking resources offline gracefully. + StatePreparing State = "Preparing" + // StateRestoring Indicates that the Repair Manager is restoring the system to its pre-repair state, + // usually by bringing resources back online. + StateRestoring State = "Restoring" +) + +// PossibleStateValues returns an array of possible values for the State const type. +func PossibleStateValues() []State { + return []State{StateApproved, StateClaimed, StateCompleted, StateCreated, StateExecuting, StateInvalid, StatePreparing, StateRestoring} +} + +// StorageKind enumerates the values for storage kind. +type StorageKind string + +const ( + // StorageKindAzureBlobStore ... + StorageKindAzureBlobStore StorageKind = "AzureBlobStore" + // StorageKindBackupStorageDescription ... + StorageKindBackupStorageDescription StorageKind = "BackupStorageDescription" + // StorageKindFileShare ... + StorageKindFileShare StorageKind = "FileShare" +) + +// PossibleStorageKindValues returns an array of possible values for the StorageKind const type. +func PossibleStorageKindValues() []StorageKind { + return []StorageKind{StorageKindAzureBlobStore, StorageKindBackupStorageDescription, StorageKindFileShare} +} + +// Type enumerates the values for type. +type Type string + +const ( + // TypeInvalidDomain ... + TypeInvalidDomain Type = "InvalidDomain" + // TypeNonPartiallyPlaceService ... + TypeNonPartiallyPlaceService Type = "NonPartiallyPlaceService" + // TypePreferredPrimaryDomain ... + TypePreferredPrimaryDomain Type = "PreferredPrimaryDomain" + // TypeRequiredDomain ... + TypeRequiredDomain Type = "RequiredDomain" + // TypeRequiredDomainDistribution ... + TypeRequiredDomainDistribution Type = "RequiredDomainDistribution" + // TypeServicePlacementPolicyDescription ... + TypeServicePlacementPolicyDescription Type = "ServicePlacementPolicyDescription" +) + +// PossibleTypeValues returns an array of possible values for the Type const type. +func PossibleTypeValues() []Type { + return []Type{TypeInvalidDomain, TypeNonPartiallyPlaceService, TypePreferredPrimaryDomain, TypeRequiredDomain, TypeRequiredDomainDistribution, TypeServicePlacementPolicyDescription} +} + +// UpgradeDomainState enumerates the values for upgrade domain state. +type UpgradeDomainState string + +const ( + // UpgradeDomainStateCompleted The upgrade domain has completed upgrade. The value is 3 + UpgradeDomainStateCompleted UpgradeDomainState = "Completed" + // UpgradeDomainStateInProgress The upgrade domain is being upgraded but not complete yet. The value is 2 + UpgradeDomainStateInProgress UpgradeDomainState = "InProgress" + // UpgradeDomainStateInvalid Indicates the upgrade domain state is invalid. All Service Fabric enumerations + // have the invalid type. The value is zero. + UpgradeDomainStateInvalid UpgradeDomainState = "Invalid" + // UpgradeDomainStatePending The upgrade domain has not started upgrading yet. The value is 1 + UpgradeDomainStatePending UpgradeDomainState = "Pending" +) + +// PossibleUpgradeDomainStateValues returns an array of possible values for the UpgradeDomainState const type. +func PossibleUpgradeDomainStateValues() []UpgradeDomainState { + return []UpgradeDomainState{UpgradeDomainStateCompleted, UpgradeDomainStateInProgress, UpgradeDomainStateInvalid, UpgradeDomainStatePending} +} + +// UpgradeKind enumerates the values for upgrade kind. +type UpgradeKind string + +const ( + // UpgradeKindInvalid Indicates the upgrade kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeKindInvalid UpgradeKind = "Invalid" + // UpgradeKindRolling The upgrade progresses one upgrade domain at a time. The value is 1 + UpgradeKindRolling UpgradeKind = "Rolling" +) + +// PossibleUpgradeKindValues returns an array of possible values for the UpgradeKind const type. +func PossibleUpgradeKindValues() []UpgradeKind { + return []UpgradeKind{UpgradeKindInvalid, UpgradeKindRolling} +} + +// UpgradeMode enumerates the values for upgrade mode. +type UpgradeMode string + +const ( + // UpgradeModeInvalid Indicates the upgrade mode is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeModeInvalid UpgradeMode = "Invalid" + // UpgradeModeMonitored The upgrade will stop after completing each upgrade domain and automatically + // monitor health before proceeding. The value is 3 + UpgradeModeMonitored UpgradeMode = "Monitored" + // UpgradeModeUnmonitoredAuto The upgrade will proceed automatically without performing any health + // monitoring. The value is 1 + UpgradeModeUnmonitoredAuto UpgradeMode = "UnmonitoredAuto" + // UpgradeModeUnmonitoredManual The upgrade will stop after completing each upgrade domain, giving the + // opportunity to manually monitor health before proceeding. The value is 2 + UpgradeModeUnmonitoredManual UpgradeMode = "UnmonitoredManual" +) + +// PossibleUpgradeModeValues returns an array of possible values for the UpgradeMode const type. +func PossibleUpgradeModeValues() []UpgradeMode { + return []UpgradeMode{UpgradeModeInvalid, UpgradeModeMonitored, UpgradeModeUnmonitoredAuto, UpgradeModeUnmonitoredManual} +} + +// UpgradeState enumerates the values for upgrade state. +type UpgradeState string + +const ( + // UpgradeStateFailed The upgrade has failed and is unable to execute FailureAction. The value is 6 + UpgradeStateFailed UpgradeState = "Failed" + // UpgradeStateInvalid Indicates the upgrade state is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeStateInvalid UpgradeState = "Invalid" + // UpgradeStateRollingBackCompleted The upgrade has finished rolling back. The value is 2 + UpgradeStateRollingBackCompleted UpgradeState = "RollingBackCompleted" + // UpgradeStateRollingBackInProgress The upgrade is rolling back to the previous version but is not + // complete yet. The value is 1 + UpgradeStateRollingBackInProgress UpgradeState = "RollingBackInProgress" + // UpgradeStateRollingForwardCompleted The upgrade has finished rolling forward. The value is 5 + UpgradeStateRollingForwardCompleted UpgradeState = "RollingForwardCompleted" + // UpgradeStateRollingForwardInProgress The upgrade is rolling forward to the target version but is not + // complete yet. The value is 4 + UpgradeStateRollingForwardInProgress UpgradeState = "RollingForwardInProgress" + // UpgradeStateRollingForwardPending The current upgrade domain has finished upgrading. The overall upgrade + // is waiting for an explicit move next request in UnmonitoredManual mode or performing health checks in + // Monitored mode. The value is 3 + UpgradeStateRollingForwardPending UpgradeState = "RollingForwardPending" +) + +// PossibleUpgradeStateValues returns an array of possible values for the UpgradeState const type. +func PossibleUpgradeStateValues() []UpgradeState { + return []UpgradeState{UpgradeStateFailed, UpgradeStateInvalid, UpgradeStateRollingBackCompleted, UpgradeStateRollingBackInProgress, UpgradeStateRollingForwardCompleted, UpgradeStateRollingForwardInProgress, UpgradeStateRollingForwardPending} +} + +// UpgradeType enumerates the values for upgrade type. +type UpgradeType string + +const ( + // UpgradeTypeInvalid Indicates the upgrade kind is invalid. All Service Fabric enumerations have the + // invalid type. The value is zero. + UpgradeTypeInvalid UpgradeType = "Invalid" + // UpgradeTypeRolling The upgrade progresses one upgrade domain at a time. The value is 1. + UpgradeTypeRolling UpgradeType = "Rolling" + // UpgradeTypeRollingForceRestart The upgrade gets restarted by force. The value is 2. + UpgradeTypeRollingForceRestart UpgradeType = "Rolling_ForceRestart" +) + +// PossibleUpgradeTypeValues returns an array of possible values for the UpgradeType const type. +func PossibleUpgradeTypeValues() []UpgradeType { + return []UpgradeType{UpgradeTypeInvalid, UpgradeTypeRolling, UpgradeTypeRollingForceRestart} +} + +// VolumeProvider enumerates the values for volume provider. +type VolumeProvider string + +const ( + // SFAzureFile Provides volumes that are backed by Azure Files. + SFAzureFile VolumeProvider = "SFAzureFile" +) + +// PossibleVolumeProviderValues returns an array of possible values for the VolumeProvider const type. +func PossibleVolumeProviderValues() []VolumeProvider { + return []VolumeProvider{SFAzureFile} +} + +// AadMetadata azure Active Directory metadata used for secured connection to cluster. +type AadMetadata struct { + // Authority - The AAD authority url. + Authority *string `json:"authority,omitempty"` + // Client - The AAD client application Id. + Client *string `json:"client,omitempty"` + // Cluster - The AAD cluster application Id. + Cluster *string `json:"cluster,omitempty"` + // Login - The AAD login url. + Login *string `json:"login,omitempty"` + // Redirect - The client application redirect address. + Redirect *string `json:"redirect,omitempty"` + // Tenant - The AAD tenant Id. + Tenant *string `json:"tenant,omitempty"` +} + +// AadMetadataObject azure Active Directory metadata object used for secured connection to cluster. +type AadMetadataObject struct { + autorest.Response `json:"-"` + // Type - The client authentication method. + Type *string `json:"type,omitempty"` + // Metadata - Azure Active Directory metadata used for secured connection to cluster. + Metadata *AadMetadata `json:"metadata,omitempty"` +} + +// AddRemoveIncrementalNamedPartitionScalingMechanism represents a scaling mechanism for adding or removing +// named partitions of a stateless service. Partition names are in the format '0','1''N-1' +type AddRemoveIncrementalNamedPartitionScalingMechanism struct { + // MinPartitionCount - Minimum number of named partitions of the service. + MinPartitionCount *int32 `json:"MinPartitionCount,omitempty"` + // MaxPartitionCount - Maximum number of named partitions of the service. + MaxPartitionCount *int32 `json:"MaxPartitionCount,omitempty"` + // ScaleIncrement - The number of instances to add or remove during a scaling operation. + ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"` + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) MarshalJSON() ([]byte, error) { + arinpsm.Kind = KindAddRemoveIncrementalNamedPartition + objectMap := make(map[string]interface{}) + if arinpsm.MinPartitionCount != nil { + objectMap["MinPartitionCount"] = arinpsm.MinPartitionCount + } + if arinpsm.MaxPartitionCount != nil { + objectMap["MaxPartitionCount"] = arinpsm.MaxPartitionCount + } + if arinpsm.ScaleIncrement != nil { + objectMap["ScaleIncrement"] = arinpsm.ScaleIncrement + } + if arinpsm.Kind != "" { + objectMap["Kind"] = arinpsm.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return nil, false +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return &arinpsm, true +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return nil, false +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for AddRemoveIncrementalNamedPartitionScalingMechanism. +func (arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &arinpsm, true +} + +// AddRemoveReplicaScalingMechanism describes the horizontal auto scaling mechanism that adds or removes +// replicas (containers or container groups). +type AddRemoveReplicaScalingMechanism struct { + // MinCount - Minimum number of containers (scale down won't be performed below this number). + MinCount *int32 `json:"minCount,omitempty"` + // MaxCount - Maximum number of containers (scale up won't be performed above this number). + MaxCount *int32 `json:"maxCount,omitempty"` + // ScaleIncrement - Each time auto scaling is performed, this number of containers will be added or removed. + ScaleIncrement *int32 `json:"scaleIncrement,omitempty"` + // Kind - Possible values include: 'KindAutoScalingMechanism', 'KindAddRemoveReplica' + Kind KindBasicAutoScalingMechanism `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AddRemoveReplicaScalingMechanism. +func (arrsm AddRemoveReplicaScalingMechanism) MarshalJSON() ([]byte, error) { + arrsm.Kind = KindAddRemoveReplica + objectMap := make(map[string]interface{}) + if arrsm.MinCount != nil { + objectMap["minCount"] = arrsm.MinCount + } + if arrsm.MaxCount != nil { + objectMap["maxCount"] = arrsm.MaxCount + } + if arrsm.ScaleIncrement != nil { + objectMap["scaleIncrement"] = arrsm.ScaleIncrement + } + if arrsm.Kind != "" { + objectMap["kind"] = arrsm.Kind + } + return json.Marshal(objectMap) +} + +// AsAddRemoveReplicaScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism. +func (arrsm AddRemoveReplicaScalingMechanism) AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) { + return &arrsm, true +} + +// AsAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism. +func (arrsm AddRemoveReplicaScalingMechanism) AsAutoScalingMechanism() (*AutoScalingMechanism, bool) { + return nil, false +} + +// AsBasicAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AddRemoveReplicaScalingMechanism. +func (arrsm AddRemoveReplicaScalingMechanism) AsBasicAutoScalingMechanism() (BasicAutoScalingMechanism, bool) { + return &arrsm, true +} + +// AnalysisEventMetadata metadata about an Analysis Event. +type AnalysisEventMetadata struct { + // Delay - The analysis delay. + Delay *string `json:"Delay,omitempty"` + // Duration - The duration of analysis. + Duration *string `json:"Duration,omitempty"` +} + +// ApplicationBackupConfigurationInfo backup configuration information for a specific Service Fabric +// application specifying what backup policy is being applied and suspend description, if any. +type ApplicationBackupConfigurationInfo struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + abci.Kind = KindBasicBackupConfigurationInfoKindApplication + objectMap := make(map[string]interface{}) + if abci.ApplicationName != nil { + objectMap["ApplicationName"] = abci.ApplicationName + } + if abci.PolicyName != nil { + objectMap["PolicyName"] = abci.PolicyName + } + if abci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = abci.PolicyInheritedFrom + } + if abci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = abci.SuspensionInfo + } + if abci.Kind != "" { + objectMap["Kind"] = abci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return &abci, true +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ApplicationBackupConfigurationInfo. +func (abci ApplicationBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &abci, true +} + +// ApplicationBackupEntity identifies the Service Fabric application which is being backed up. +type ApplicationBackupEntity struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) MarshalJSON() ([]byte, error) { + abe.EntityKind = EntityKindApplication1 + objectMap := make(map[string]interface{}) + if abe.ApplicationName != nil { + objectMap["ApplicationName"] = abe.ApplicationName + } + if abe.EntityKind != "" { + objectMap["EntityKind"] = abe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return &abe, true +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for ApplicationBackupEntity. +func (abe ApplicationBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &abe, true +} + +// ApplicationCapacityDescription describes capacity information for services of this application. This +// description can be used for describing the following. +// - Reserving the capacity for the services on the nodes +// - Limiting the total number of nodes that services of this application can run on +// - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of +// this application +type ApplicationCapacityDescription struct { + // MinimumNodes - The minimum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. If this property is set to zero, no capacity will be reserved. The value of this property cannot be more than the value of the MaximumNodes property. + MinimumNodes *int64 `json:"MinimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where Service Fabric will reserve capacity for this application. Note that this does not mean that the services of this application will be placed on all of those nodes. By default, the value of this property is zero and it means that the services can be placed on any node. + MaximumNodes *int64 `json:"MaximumNodes,omitempty"` + // ApplicationMetrics - List of application capacity metric description. + ApplicationMetrics *[]ApplicationMetricDescription `json:"ApplicationMetrics,omitempty"` +} + +// ApplicationContainerInstanceExitedEvent container Exited event. +type ApplicationContainerInstanceExitedEvent struct { + // ServiceName - Name of Service. + ServiceName *string `json:"ServiceName,omitempty"` + // ServicePackageName - Name of Service package. + ServicePackageName *string `json:"ServicePackageName,omitempty"` + // ServicePackageActivationID - Activation Id of Service package. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // IsExclusive - Indicates IsExclusive flag. + IsExclusive *bool `json:"IsExclusive,omitempty"` + // CodePackageName - Name of Code package. + CodePackageName *string `json:"CodePackageName,omitempty"` + // EntryPointType - Type of EntryPoint. + EntryPointType *string `json:"EntryPointType,omitempty"` + // ImageName - Name of Container image. + ImageName *string `json:"ImageName,omitempty"` + // ContainerName - Name of Container. + ContainerName *string `json:"ContainerName,omitempty"` + // HostID - Host Id. + HostID *string `json:"HostId,omitempty"` + // ExitCode - Exit code of process. + ExitCode *int64 `json:"ExitCode,omitempty"` + // UnexpectedTermination - Indicates if termination is unexpected. + UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"` + // StartTime - Start time of process. + StartTime *date.Time `json:"StartTime,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) MarshalJSON() ([]byte, error) { + aciee.Kind = KindApplicationContainerInstanceExited + objectMap := make(map[string]interface{}) + if aciee.ServiceName != nil { + objectMap["ServiceName"] = aciee.ServiceName + } + if aciee.ServicePackageName != nil { + objectMap["ServicePackageName"] = aciee.ServicePackageName + } + if aciee.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = aciee.ServicePackageActivationID + } + if aciee.IsExclusive != nil { + objectMap["IsExclusive"] = aciee.IsExclusive + } + if aciee.CodePackageName != nil { + objectMap["CodePackageName"] = aciee.CodePackageName + } + if aciee.EntryPointType != nil { + objectMap["EntryPointType"] = aciee.EntryPointType + } + if aciee.ImageName != nil { + objectMap["ImageName"] = aciee.ImageName + } + if aciee.ContainerName != nil { + objectMap["ContainerName"] = aciee.ContainerName + } + if aciee.HostID != nil { + objectMap["HostId"] = aciee.HostID + } + if aciee.ExitCode != nil { + objectMap["ExitCode"] = aciee.ExitCode + } + if aciee.UnexpectedTermination != nil { + objectMap["UnexpectedTermination"] = aciee.UnexpectedTermination + } + if aciee.StartTime != nil { + objectMap["StartTime"] = aciee.StartTime + } + if aciee.ApplicationID != nil { + objectMap["ApplicationId"] = aciee.ApplicationID + } + if aciee.EventInstanceID != nil { + objectMap["EventInstanceId"] = aciee.EventInstanceID + } + if aciee.Category != nil { + objectMap["Category"] = aciee.Category + } + if aciee.TimeStamp != nil { + objectMap["TimeStamp"] = aciee.TimeStamp + } + if aciee.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = aciee.HasCorrelatedEvents + } + if aciee.Kind != "" { + objectMap["Kind"] = aciee.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &aciee, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return &aciee, true +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationContainerInstanceExitedEvent. +func (aciee ApplicationContainerInstanceExitedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &aciee, true +} + +// ApplicationCreatedEvent application Created event. +type ApplicationCreatedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // ApplicationDefinitionKind - Application definition kind. + ApplicationDefinitionKind *string `json:"ApplicationDefinitionKind,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) MarshalJSON() ([]byte, error) { + ace.Kind = KindApplicationCreated + objectMap := make(map[string]interface{}) + if ace.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ace.ApplicationTypeName + } + if ace.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ace.ApplicationTypeVersion + } + if ace.ApplicationDefinitionKind != nil { + objectMap["ApplicationDefinitionKind"] = ace.ApplicationDefinitionKind + } + if ace.ApplicationID != nil { + objectMap["ApplicationId"] = ace.ApplicationID + } + if ace.EventInstanceID != nil { + objectMap["EventInstanceId"] = ace.EventInstanceID + } + if ace.Category != nil { + objectMap["Category"] = ace.Category + } + if ace.TimeStamp != nil { + objectMap["TimeStamp"] = ace.TimeStamp + } + if ace.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ace.HasCorrelatedEvents + } + if ace.Kind != "" { + objectMap["Kind"] = ace.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ace, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return &ace, true +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationCreatedEvent. +func (ace ApplicationCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ace, true +} + +// ApplicationDeletedEvent application Deleted event. +type ApplicationDeletedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) MarshalJSON() ([]byte, error) { + ade.Kind = KindApplicationDeleted + objectMap := make(map[string]interface{}) + if ade.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ade.ApplicationTypeName + } + if ade.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ade.ApplicationTypeVersion + } + if ade.ApplicationID != nil { + objectMap["ApplicationId"] = ade.ApplicationID + } + if ade.EventInstanceID != nil { + objectMap["EventInstanceId"] = ade.EventInstanceID + } + if ade.Category != nil { + objectMap["Category"] = ade.Category + } + if ade.TimeStamp != nil { + objectMap["TimeStamp"] = ade.TimeStamp + } + if ade.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ade.HasCorrelatedEvents + } + if ade.Kind != "" { + objectMap["Kind"] = ade.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ade, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return &ade, true +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationDeletedEvent. +func (ade ApplicationDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ade, true +} + +// ApplicationDescription describes a Service Fabric application. +type ApplicationDescription struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"TypeVersion,omitempty"` + // ParameterList - List of application parameters with overridden values from their default values specified in the application manifest. + ParameterList *[]ApplicationParameter `json:"ParameterList,omitempty"` + // ApplicationCapacity - Describes capacity information for services of this application. This description can be used for describing the following. + // - Reserving the capacity for the services on the nodes + // - Limiting the total number of nodes that services of this application can run on + // - Limiting the custom capacity metrics to limit the total consumption of this metric by the services of this application + ApplicationCapacity *ApplicationCapacityDescription `json:"ApplicationCapacity,omitempty"` +} + +// BasicApplicationEvent represents the base for all Application Events. +type BasicApplicationEvent interface { + AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) + AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) + AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) + AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) + AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) + AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) + AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) + AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) + AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) + AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) + AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) + AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) + AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) + AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) + AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) + AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) + AsApplicationEvent() (*ApplicationEvent, bool) +} + +// ApplicationEvent represents the base for all Application Events. +type ApplicationEvent struct { + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicApplicationEvent(body []byte) (BasicApplicationEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplicationCreated): + var ace ApplicationCreatedEvent + err := json.Unmarshal(body, &ace) + return ace, err + case string(KindApplicationDeleted): + var ade ApplicationDeletedEvent + err := json.Unmarshal(body, &ade) + return ade, err + case string(KindApplicationNewHealthReport): + var anhre ApplicationNewHealthReportEvent + err := json.Unmarshal(body, &anhre) + return anhre, err + case string(KindApplicationHealthReportExpired): + var ahree ApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &ahree) + return ahree, err + case string(KindApplicationUpgradeCompleted): + var auce ApplicationUpgradeCompletedEvent + err := json.Unmarshal(body, &auce) + return auce, err + case string(KindApplicationUpgradeDomainCompleted): + var audce ApplicationUpgradeDomainCompletedEvent + err := json.Unmarshal(body, &audce) + return audce, err + case string(KindApplicationUpgradeRollbackCompleted): + var aurce ApplicationUpgradeRollbackCompletedEvent + err := json.Unmarshal(body, &aurce) + return aurce, err + case string(KindApplicationUpgradeRollbackStarted): + var aurse ApplicationUpgradeRollbackStartedEvent + err := json.Unmarshal(body, &aurse) + return aurse, err + case string(KindApplicationUpgradeStarted): + var ause ApplicationUpgradeStartedEvent + err := json.Unmarshal(body, &ause) + return ause, err + case string(KindDeployedApplicationNewHealthReport): + var danhre DeployedApplicationNewHealthReportEvent + err := json.Unmarshal(body, &danhre) + return danhre, err + case string(KindDeployedApplicationHealthReportExpired): + var dahree DeployedApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &dahree) + return dahree, err + case string(KindApplicationProcessExited): + var apee ApplicationProcessExitedEvent + err := json.Unmarshal(body, &apee) + return apee, err + case string(KindApplicationContainerInstanceExited): + var aciee ApplicationContainerInstanceExitedEvent + err := json.Unmarshal(body, &aciee) + return aciee, err + case string(KindDeployedServicePackageNewHealthReport): + var dspnhre DeployedServicePackageNewHealthReportEvent + err := json.Unmarshal(body, &dspnhre) + return dspnhre, err + case string(KindDeployedServicePackageHealthReportExpired): + var dsphree DeployedServicePackageHealthReportExpiredEvent + err := json.Unmarshal(body, &dsphree) + return dsphree, err + case string(KindChaosCodePackageRestartScheduled): + var ccprse ChaosCodePackageRestartScheduledEvent + err := json.Unmarshal(body, &ccprse) + return ccprse, err + default: + var ae ApplicationEvent + err := json.Unmarshal(body, &ae) + return ae, err + } +} +func unmarshalBasicApplicationEventArray(body []byte) ([]BasicApplicationEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + aeArray := make([]BasicApplicationEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ae, err := unmarshalBasicApplicationEvent(*rawMessage) + if err != nil { + return nil, err + } + aeArray[index] = ae + } + return aeArray, nil +} + +// MarshalJSON is the custom marshaler for ApplicationEvent. +func (ae ApplicationEvent) MarshalJSON() ([]byte, error) { + ae.Kind = KindApplicationEvent + objectMap := make(map[string]interface{}) + if ae.ApplicationID != nil { + objectMap["ApplicationId"] = ae.ApplicationID + } + if ae.EventInstanceID != nil { + objectMap["EventInstanceId"] = ae.EventInstanceID + } + if ae.Category != nil { + objectMap["Category"] = ae.Category + } + if ae.TimeStamp != nil { + objectMap["TimeStamp"] = ae.TimeStamp + } + if ae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ae.HasCorrelatedEvents + } + if ae.Kind != "" { + objectMap["Kind"] = ae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return &ae, true +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ae, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationEvent. +func (ae ApplicationEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ae, true +} + +// ApplicationHealth represents the health of the application. Contains the application aggregated health +// state and the service and deployed application health states. +type ApplicationHealth struct { + autorest.Response `json:"-"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // ServiceHealthStates - Service health states as found in the health store. + ServiceHealthStates *[]ServiceHealthState `json:"ServiceHealthStates,omitempty"` + // DeployedApplicationHealthStates - Deployed application health states as found in the health store. + DeployedApplicationHealthStates *[]DeployedApplicationHealthState `json:"DeployedApplicationHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ApplicationHealthEvaluation represents health evaluation for an application, containing information +// about the data and the algorithm used by the health store to evaluate health. +type ApplicationHealthEvaluation struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + ahe.Kind = KindApplication + objectMap := make(map[string]interface{}) + if ahe.ApplicationName != nil { + objectMap["ApplicationName"] = ahe.ApplicationName + } + if ahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations + } + if ahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState + } + if ahe.Description != nil { + objectMap["Description"] = ahe.Description + } + if ahe.Kind != "" { + objectMap["Kind"] = ahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return &ahe, true +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationHealthEvaluation. +func (ahe ApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ahe, true +} + +// ApplicationHealthPolicies defines the application health policy map used to evaluate the health of an +// application or one of its children entities. +type ApplicationHealthPolicies struct { + // ApplicationHealthPolicyMap - The wrapper that contains the map with application health policies used to evaluate specific applications in the cluster. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// ApplicationHealthPolicy defines a health policy used to evaluate the health of an application or one of +// its children entities. +type ApplicationHealthPolicy struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // MaxPercentUnhealthyDeployedApplications - The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. + // This is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"` + // DefaultServiceTypeHealthPolicy - The health policy used by default to evaluate the health of a service type. + DefaultServiceTypeHealthPolicy *ServiceTypeHealthPolicy `json:"DefaultServiceTypeHealthPolicy,omitempty"` + // ServiceTypeHealthPolicyMap - The map with service type health policy per service type name. The map is empty by default. + ServiceTypeHealthPolicyMap *[]ServiceTypeHealthPolicyMapItem `json:"ServiceTypeHealthPolicyMap,omitempty"` +} + +// ApplicationHealthPolicyMapItem defines an item in ApplicationHealthPolicyMap. +type ApplicationHealthPolicyMapItem struct { + // Key - The key of the application health policy map item. This is the name of the application. + Key *string `json:"Key,omitempty"` + // Value - The value of the application health policy map item. This is the ApplicationHealthPolicy for this application. + Value *ApplicationHealthPolicy `json:"Value,omitempty"` +} + +// ApplicationHealthReportExpiredEvent application Health Report Expired event. +type ApplicationHealthReportExpiredEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + ahree.Kind = KindApplicationHealthReportExpired + objectMap := make(map[string]interface{}) + if ahree.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = ahree.ApplicationInstanceID + } + if ahree.SourceID != nil { + objectMap["SourceId"] = ahree.SourceID + } + if ahree.Property != nil { + objectMap["Property"] = ahree.Property + } + if ahree.HealthState != nil { + objectMap["HealthState"] = ahree.HealthState + } + if ahree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = ahree.TimeToLiveMs + } + if ahree.SequenceNumber != nil { + objectMap["SequenceNumber"] = ahree.SequenceNumber + } + if ahree.Description != nil { + objectMap["Description"] = ahree.Description + } + if ahree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = ahree.RemoveWhenExpired + } + if ahree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = ahree.SourceUtcTimestamp + } + if ahree.ApplicationID != nil { + objectMap["ApplicationId"] = ahree.ApplicationID + } + if ahree.EventInstanceID != nil { + objectMap["EventInstanceId"] = ahree.EventInstanceID + } + if ahree.Category != nil { + objectMap["Category"] = ahree.Category + } + if ahree.TimeStamp != nil { + objectMap["TimeStamp"] = ahree.TimeStamp + } + if ahree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ahree.HasCorrelatedEvents + } + if ahree.Kind != "" { + objectMap["Kind"] = ahree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ahree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return &ahree, true +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationHealthReportExpiredEvent. +func (ahree ApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ahree, true +} + +// ApplicationHealthState represents the health state of an application, which contains the application +// identifier and the aggregated health state. +type ApplicationHealthState struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// ApplicationHealthStateChunk represents the health state chunk of a application. +// The application health state chunk contains the application name, its aggregated health state and any +// children services and deployed applications that respect the filters in cluster health chunk query +// description. +type ApplicationHealthStateChunk struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceHealthStateChunks - The list of service health state chunks in the cluster that respect the filters in the cluster health chunk query description. + ServiceHealthStateChunks *ServiceHealthStateChunkList `json:"ServiceHealthStateChunks,omitempty"` + // DeployedApplicationHealthStateChunks - The list of deployed application health state chunks in the cluster that respect the filters in the cluster health chunk query description. + DeployedApplicationHealthStateChunks *DeployedApplicationHealthStateChunkList `json:"DeployedApplicationHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ApplicationHealthStateChunkList the list of application health state chunks in the cluster that respect +// the input filters in the chunk query. Returned by get cluster health state chunks query. +type ApplicationHealthStateChunkList struct { + // Items - The list of application health state chunks that respect the input filters in the chunk query. + Items *[]ApplicationHealthStateChunk `json:"Items,omitempty"` + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// ApplicationHealthStateFilter defines matching criteria to determine whether a application should be +// included in the cluster health chunk. +// One filter can match zero, one or multiple applications, depending on its properties. +type ApplicationHealthStateFilter struct { + // ApplicationNameFilter - The name of the application that matches the filter, as a fabric uri. The filter is applied only to the specified application, if it exists. + // If the application doesn't exist, no application is returned in the cluster health chunk based on this filter. + // If the application exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all applications are matched against the other filter members, like health state filter. + ApplicationNameFilter *string `json:"ApplicationNameFilter,omitempty"` + // ApplicationTypeNameFilter - The name of the application type that matches the filter. + // If specified, the filter is applied only to applications of the selected application type, if any exists. + // If no applications of the specified application type exists, no application is returned in the cluster health chunk based on this filter. + // Each application of the specified application type is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all applications are matched against the other filter members, like health state filter. + ApplicationTypeNameFilter *string `json:"ApplicationTypeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the applications. It allows selecting applications if they match the desired health states. + // The possible values are integer value of one of the following health states. Only applications that match the filter are returned. All applications are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the application name or the application type name are specified. If the filter has default value and application name is specified, the matching application is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches applications with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // ServiceFilters - Defines a list of filters that specify which services to be included in the returned cluster health chunk as children of the application. The services are returned only if the parent application matches a filter. + // If the list is empty, no services are returned. All the services are used to evaluate the parent application aggregated health state, regardless of the input filters. + // The application filter may specify multiple service filters. + // For example, it can specify a filter to return all services with health state Error and another filter to always include a service identified by its service name. + ServiceFilters *[]ServiceHealthStateFilter `json:"ServiceFilters,omitempty"` + // DeployedApplicationFilters - Defines a list of filters that specify which deployed applications to be included in the returned cluster health chunk as children of the application. The deployed applications are returned only if the parent application matches a filter. + // If the list is empty, no deployed applications are returned. All the deployed applications are used to evaluate the parent application aggregated health state, regardless of the input filters. + // The application filter may specify multiple deployed application filters. + // For example, it can specify a filter to return all deployed applications with health state Error and another filter to always include a deployed application on a specified node. + DeployedApplicationFilters *[]DeployedApplicationHealthStateFilter `json:"DeployedApplicationFilters,omitempty"` +} + +// ApplicationInfo information about a Service Fabric application. +type ApplicationInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TypeVersion - The version of the application type as defined in the application manifest. + TypeVersion *string `json:"TypeVersion,omitempty"` + // Status - The status of the application. Possible values include: 'ApplicationStatusInvalid', 'ApplicationStatusReady', 'ApplicationStatusUpgrading', 'ApplicationStatusCreating', 'ApplicationStatusDeleting', 'ApplicationStatusFailed' + Status ApplicationStatus `json:"Status,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters *[]ApplicationParameter `json:"Parameters,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ApplicationDefinitionKind - The mechanism used to define a Service Fabric application. Possible values include: 'Invalid', 'ServiceFabricApplicationDescription', 'Compose' + ApplicationDefinitionKind ApplicationDefinitionKind `json:"ApplicationDefinitionKind,omitempty"` +} + +// ApplicationLoadInfo load Information about a Service Fabric application. +type ApplicationLoadInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // MinimumNodes - The minimum number of nodes for this application. + // It is the number of nodes where Service Fabric will reserve Capacity in the cluster which equals to ReservedLoad * MinimumNodes for this Application instance. + // For applications that do not have application capacity defined this value will be zero. + MinimumNodes *int64 `json:"MinimumNodes,omitempty"` + // MaximumNodes - The maximum number of nodes where this application can be instantiated. + // It is the number of nodes this application is allowed to span. + // For applications that do not have application capacity defined this value will be zero. + MaximumNodes *int64 `json:"MaximumNodes,omitempty"` + // NodeCount - The number of nodes on which this application is instantiated. + // For applications that do not have application capacity defined this value will be zero. + NodeCount *int64 `json:"NodeCount,omitempty"` + // ApplicationLoadMetricInformation - List of application capacity metric description. + ApplicationLoadMetricInformation *[]ApplicationMetricDescription `json:"ApplicationLoadMetricInformation,omitempty"` +} + +// ApplicationMetricDescription describes capacity information for a custom resource balancing metric. This +// can be used to limit the total consumption of this metric by the services of this application. +type ApplicationMetricDescription struct { + // Name - The name of the metric. + Name *string `json:"Name,omitempty"` + // MaximumCapacity - The maximum node capacity for Service Fabric application. + // This is the maximum Load for an instance of this application on a single node. Even if the capacity of node is greater than this value, Service Fabric will limit the total load of services within the application on each node to this value. + // If set to zero, capacity for this metric is unlimited on each node. + // When creating a new application with application capacity defined, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + // When updating existing application with application capacity, the product of MaximumNodes and this value must always be smaller than or equal to TotalApplicationCapacity. + MaximumCapacity *int64 `json:"MaximumCapacity,omitempty"` + // ReservationCapacity - The node reservation capacity for Service Fabric application. + // This is the amount of load which is reserved on nodes which have instances of this application. + // If MinimumNodes is specified, then the product of these values will be the capacity reserved in the cluster for the application. + // If set to zero, no capacity is reserved for this metric. + // When setting application capacity or when updating application capacity; this value must be smaller than or equal to MaximumCapacity for each metric. + ReservationCapacity *int64 `json:"ReservationCapacity,omitempty"` + // TotalApplicationCapacity - The total metric capacity for Service Fabric application. + // This is the total metric capacity for this application in the cluster. Service Fabric will try to limit the sum of loads of services within the application to this value. + // When creating a new application with application capacity defined, the product of MaximumNodes and MaximumCapacity must always be smaller than or equal to this value. + TotalApplicationCapacity *int64 `json:"TotalApplicationCapacity,omitempty"` +} + +// ApplicationNameInfo information about the application name. +type ApplicationNameInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// ApplicationNewHealthReportEvent application Health Report Created event. +type ApplicationNewHealthReportEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) { + anhre.Kind = KindApplicationNewHealthReport + objectMap := make(map[string]interface{}) + if anhre.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = anhre.ApplicationInstanceID + } + if anhre.SourceID != nil { + objectMap["SourceId"] = anhre.SourceID + } + if anhre.Property != nil { + objectMap["Property"] = anhre.Property + } + if anhre.HealthState != nil { + objectMap["HealthState"] = anhre.HealthState + } + if anhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = anhre.TimeToLiveMs + } + if anhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = anhre.SequenceNumber + } + if anhre.Description != nil { + objectMap["Description"] = anhre.Description + } + if anhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = anhre.RemoveWhenExpired + } + if anhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = anhre.SourceUtcTimestamp + } + if anhre.ApplicationID != nil { + objectMap["ApplicationId"] = anhre.ApplicationID + } + if anhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = anhre.EventInstanceID + } + if anhre.Category != nil { + objectMap["Category"] = anhre.Category + } + if anhre.TimeStamp != nil { + objectMap["TimeStamp"] = anhre.TimeStamp + } + if anhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = anhre.HasCorrelatedEvents + } + if anhre.Kind != "" { + objectMap["Kind"] = anhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &anhre, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return &anhre, true +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationNewHealthReportEvent. +func (anhre ApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &anhre, true +} + +// ApplicationParameter describes an application parameter override to be applied when creating or +// upgrading an application. +type ApplicationParameter struct { + // Key - The name of the parameter. + Key *string `json:"Key,omitempty"` + // Value - The value of the parameter. + Value *string `json:"Value,omitempty"` +} + +// ApplicationProcessExitedEvent process Exited event. +type ApplicationProcessExitedEvent struct { + // ServiceName - Name of Service. + ServiceName *string `json:"ServiceName,omitempty"` + // ServicePackageName - Name of Service package. + ServicePackageName *string `json:"ServicePackageName,omitempty"` + // ServicePackageActivationID - Activation Id of Service package. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // IsExclusive - Indicates IsExclusive flag. + IsExclusive *bool `json:"IsExclusive,omitempty"` + // CodePackageName - Name of Code package. + CodePackageName *string `json:"CodePackageName,omitempty"` + // EntryPointType - Type of EntryPoint. + EntryPointType *string `json:"EntryPointType,omitempty"` + // ExeName - Name of executable. + ExeName *string `json:"ExeName,omitempty"` + // ProcessID - Process Id. + ProcessID *int64 `json:"ProcessId,omitempty"` + // HostID - Host Id. + HostID *string `json:"HostId,omitempty"` + // ExitCode - Exit code of process. + ExitCode *int64 `json:"ExitCode,omitempty"` + // UnexpectedTermination - Indicates if termination is unexpected. + UnexpectedTermination *bool `json:"UnexpectedTermination,omitempty"` + // StartTime - Start time of process. + StartTime *date.Time `json:"StartTime,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) MarshalJSON() ([]byte, error) { + apee.Kind = KindApplicationProcessExited + objectMap := make(map[string]interface{}) + if apee.ServiceName != nil { + objectMap["ServiceName"] = apee.ServiceName + } + if apee.ServicePackageName != nil { + objectMap["ServicePackageName"] = apee.ServicePackageName + } + if apee.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = apee.ServicePackageActivationID + } + if apee.IsExclusive != nil { + objectMap["IsExclusive"] = apee.IsExclusive + } + if apee.CodePackageName != nil { + objectMap["CodePackageName"] = apee.CodePackageName + } + if apee.EntryPointType != nil { + objectMap["EntryPointType"] = apee.EntryPointType + } + if apee.ExeName != nil { + objectMap["ExeName"] = apee.ExeName + } + if apee.ProcessID != nil { + objectMap["ProcessId"] = apee.ProcessID + } + if apee.HostID != nil { + objectMap["HostId"] = apee.HostID + } + if apee.ExitCode != nil { + objectMap["ExitCode"] = apee.ExitCode + } + if apee.UnexpectedTermination != nil { + objectMap["UnexpectedTermination"] = apee.UnexpectedTermination + } + if apee.StartTime != nil { + objectMap["StartTime"] = apee.StartTime + } + if apee.ApplicationID != nil { + objectMap["ApplicationId"] = apee.ApplicationID + } + if apee.EventInstanceID != nil { + objectMap["EventInstanceId"] = apee.EventInstanceID + } + if apee.Category != nil { + objectMap["Category"] = apee.Category + } + if apee.TimeStamp != nil { + objectMap["TimeStamp"] = apee.TimeStamp + } + if apee.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = apee.HasCorrelatedEvents + } + if apee.Kind != "" { + objectMap["Kind"] = apee.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &apee, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return &apee, true +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationProcessExitedEvent. +func (apee ApplicationProcessExitedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &apee, true +} + +// ApplicationProperties describes properties of a application resource. +type ApplicationProperties struct { + // Description - User readable description of the application. + Description *string `json:"description,omitempty"` + // Services - Describes the services in the application. This property is used to create or modify services of the application. On get only the name of the service is returned. The service description can be obtained by querying for the service resource. + Services *[]ServiceResourceDescription `json:"services,omitempty"` + // Diagnostics - Describes the diagnostics definition and usage for an application resource. + Diagnostics *DiagnosticsDescription `json:"diagnostics,omitempty"` + // DebugParams - Internal - used by Visual Studio to setup the debugging session on the local development environment. + DebugParams *string `json:"debugParams,omitempty"` + // ServiceNames - Names of the services in the application. + ServiceNames *[]string `json:"serviceNames,omitempty"` + // Status - Status of the application. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the application. + StatusDetails *string `json:"statusDetails,omitempty"` + // HealthState - Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"healthState,omitempty"` + // UnhealthyEvaluation - When the application's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the application is marked unhealthy. + UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"` +} + +// ApplicationResourceDescription this type describes a application resource. +type ApplicationResourceDescription struct { + autorest.Response `json:"-"` + // Name - Name of the Application resource. + Name *string `json:"name,omitempty"` + // ApplicationProperties - Describes properties of a application resource. + *ApplicationProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationResourceDescription. +func (ard ApplicationResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ard.Name != nil { + objectMap["name"] = ard.Name + } + if ard.ApplicationProperties != nil { + objectMap["properties"] = ard.ApplicationProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationResourceDescription struct. +func (ard *ApplicationResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ard.Name = &name + } + case "properties": + if v != nil { + var applicationProperties ApplicationProperties + err = json.Unmarshal(*v, &applicationProperties) + if err != nil { + return err + } + ard.ApplicationProperties = &applicationProperties + } + } + } + + return nil +} + +// ApplicationScopedVolume describes a volume whose lifetime is scoped to the application's lifetime. +type ApplicationScopedVolume struct { + // CreationParameters - Describes parameters for creating application-scoped volumes. + CreationParameters BasicApplicationScopedVolumeCreationParameters `json:"creationParameters,omitempty"` + // Name - Name of the volume being referenced. + Name *string `json:"name,omitempty"` + // ReadOnly - The flag indicating whether the volume is read only. Default is 'false'. + ReadOnly *bool `json:"readOnly,omitempty"` + // DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed. + DestinationPath *string `json:"destinationPath,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ApplicationScopedVolume struct. +func (asv *ApplicationScopedVolume) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "creationParameters": + if v != nil { + creationParameters, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*v) + if err != nil { + return err + } + asv.CreationParameters = creationParameters + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + asv.Name = &name + } + case "readOnly": + if v != nil { + var readOnly bool + err = json.Unmarshal(*v, &readOnly) + if err != nil { + return err + } + asv.ReadOnly = &readOnly + } + case "destinationPath": + if v != nil { + var destinationPath string + err = json.Unmarshal(*v, &destinationPath) + if err != nil { + return err + } + asv.DestinationPath = &destinationPath + } + } + } + + return nil +} + +// BasicApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes. +type BasicApplicationScopedVolumeCreationParameters interface { + AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) + AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) +} + +// ApplicationScopedVolumeCreationParameters describes parameters for creating application-scoped volumes. +type ApplicationScopedVolumeCreationParameters struct { + // Description - User readable description of the volume. + Description *string `json:"description,omitempty"` + // Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk' + Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"` +} + +func unmarshalBasicApplicationScopedVolumeCreationParameters(body []byte) (BasicApplicationScopedVolumeCreationParameters, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindServiceFabricVolumeDisk): + var asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk + err := json.Unmarshal(body, &asvcpsfvd) + return asvcpsfvd, err + default: + var asvcp ApplicationScopedVolumeCreationParameters + err := json.Unmarshal(body, &asvcp) + return asvcp, err + } +} +func unmarshalBasicApplicationScopedVolumeCreationParametersArray(body []byte) ([]BasicApplicationScopedVolumeCreationParameters, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + asvcpArray := make([]BasicApplicationScopedVolumeCreationParameters, len(rawMessages)) + + for index, rawMessage := range rawMessages { + asvcp, err := unmarshalBasicApplicationScopedVolumeCreationParameters(*rawMessage) + if err != nil { + return nil, err + } + asvcpArray[index] = asvcp + } + return asvcpArray, nil +} + +// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParameters. +func (asvcp ApplicationScopedVolumeCreationParameters) MarshalJSON() ([]byte, error) { + asvcp.Kind = KindApplicationScopedVolumeCreationParameters + objectMap := make(map[string]interface{}) + if asvcp.Description != nil { + objectMap["description"] = asvcp.Description + } + if asvcp.Kind != "" { + objectMap["kind"] = asvcp.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters. +func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) { + return nil, false +} + +// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters. +func (asvcp ApplicationScopedVolumeCreationParameters) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) { + return &asvcp, true +} + +// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParameters. +func (asvcp ApplicationScopedVolumeCreationParameters) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) { + return &asvcp, true +} + +// ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk describes parameters for creating +// application-scoped volumes provided by Service Fabric Volume Disks +type ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk struct { + // SizeDisk - Volume size. Possible values include: 'SizeTypesSmall', 'SizeTypesMedium', 'SizeTypesLarge' + SizeDisk SizeTypes `json:"sizeDisk,omitempty"` + // Description - User readable description of the volume. + Description *string `json:"description,omitempty"` + // Kind - Possible values include: 'KindApplicationScopedVolumeCreationParameters', 'KindServiceFabricVolumeDisk' + Kind KindBasicApplicationScopedVolumeCreationParameters `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk. +func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) MarshalJSON() ([]byte, error) { + asvcpsfvd.Kind = KindServiceFabricVolumeDisk + objectMap := make(map[string]interface{}) + if asvcpsfvd.SizeDisk != "" { + objectMap["sizeDisk"] = asvcpsfvd.SizeDisk + } + if asvcpsfvd.Description != nil { + objectMap["description"] = asvcpsfvd.Description + } + if asvcpsfvd.Kind != "" { + objectMap["kind"] = asvcpsfvd.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk. +func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk() (*ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk, bool) { + return &asvcpsfvd, true +} + +// AsApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk. +func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsApplicationScopedVolumeCreationParameters() (*ApplicationScopedVolumeCreationParameters, bool) { + return nil, false +} + +// AsBasicApplicationScopedVolumeCreationParameters is the BasicApplicationScopedVolumeCreationParameters implementation for ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk. +func (asvcpsfvd ApplicationScopedVolumeCreationParametersServiceFabricVolumeDisk) AsBasicApplicationScopedVolumeCreationParameters() (BasicApplicationScopedVolumeCreationParameters, bool) { + return &asvcpsfvd, true +} + +// ApplicationsHealthEvaluation represents health evaluation for applications, containing health +// evaluations for each unhealthy application that impacted current aggregated health state. +type ApplicationsHealthEvaluation struct { + // MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications from the ClusterHealthPolicy. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // TotalCount - Total number of applications from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + ahe.Kind = KindApplications + objectMap := make(map[string]interface{}) + if ahe.MaxPercentUnhealthyApplications != nil { + objectMap["MaxPercentUnhealthyApplications"] = ahe.MaxPercentUnhealthyApplications + } + if ahe.TotalCount != nil { + objectMap["TotalCount"] = ahe.TotalCount + } + if ahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ahe.UnhealthyEvaluations + } + if ahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ahe.AggregatedHealthState + } + if ahe.Description != nil { + objectMap["Description"] = ahe.Description + } + if ahe.Kind != "" { + objectMap["Kind"] = ahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return &ahe, true +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationsHealthEvaluation. +func (ahe ApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ahe, true +} + +// ApplicationTypeApplicationsHealthEvaluation represents health evaluation for applications of a +// particular application type. The application type applications evaluation can be returned when cluster +// health evaluation returns unhealthy aggregated health state, either Error or Warning. It contains health +// evaluations for each unhealthy application of the included application type that impacted current +// aggregated health state. +type ApplicationTypeApplicationsHealthEvaluation struct { + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // MaxPercentUnhealthyApplications - Maximum allowed percentage of unhealthy applications for the application type, specified as an entry in ApplicationTypeHealthPolicyMap. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // TotalCount - Total number of applications of the application type found in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ApplicationHealthEvaluation of this application type that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + atahe.Kind = KindApplicationTypeApplications + objectMap := make(map[string]interface{}) + if atahe.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = atahe.ApplicationTypeName + } + if atahe.MaxPercentUnhealthyApplications != nil { + objectMap["MaxPercentUnhealthyApplications"] = atahe.MaxPercentUnhealthyApplications + } + if atahe.TotalCount != nil { + objectMap["TotalCount"] = atahe.TotalCount + } + if atahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = atahe.UnhealthyEvaluations + } + if atahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = atahe.AggregatedHealthState + } + if atahe.Description != nil { + objectMap["Description"] = atahe.Description + } + if atahe.Kind != "" { + objectMap["Kind"] = atahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return &atahe, true +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ApplicationTypeApplicationsHealthEvaluation. +func (atahe ApplicationTypeApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &atahe, true +} + +// ApplicationTypeHealthPolicyMapItem defines an item in ApplicationTypeHealthPolicyMap. +type ApplicationTypeHealthPolicyMapItem struct { + // Key - The key of the application type health policy map item. This is the name of the application type. + Key *string `json:"Key,omitempty"` + // Value - The value of the application type health policy map item. + // The max percent unhealthy applications allowed for the application type. Must be between zero and 100. + Value *int32 `json:"Value,omitempty"` +} + +// ApplicationTypeImageStorePath path description for the application package in the image store specified +// during the prior copy operation. +type ApplicationTypeImageStorePath struct { + // ApplicationTypeBuildPath - The relative image store path to the application package. + ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"` +} + +// ApplicationTypeInfo information about an application type. +type ApplicationTypeInfo struct { + // Name - The application type name as defined in the application manifest. + Name *string `json:"Name,omitempty"` + // Version - The version of the application type as defined in the application manifest. + Version *string `json:"Version,omitempty"` + // DefaultParameterList - List of application type parameters that can be overridden when creating or updating the application. + DefaultParameterList *[]ApplicationParameter `json:"DefaultParameterList,omitempty"` + // Status - The status of the application type. Possible values include: 'ApplicationTypeStatusInvalid', 'ApplicationTypeStatusProvisioning', 'ApplicationTypeStatusAvailable', 'ApplicationTypeStatusUnprovisioning', 'ApplicationTypeStatusFailed' + Status ApplicationTypeStatus `json:"Status,omitempty"` + // StatusDetails - Additional detailed information about the status of the application type. + StatusDetails *string `json:"StatusDetails,omitempty"` + // ApplicationTypeDefinitionKind - The mechanism used to define a Service Fabric application type. Possible values include: 'ApplicationTypeDefinitionKindInvalid', 'ApplicationTypeDefinitionKindServiceFabricApplicationPackage', 'ApplicationTypeDefinitionKindCompose' + ApplicationTypeDefinitionKind ApplicationTypeDefinitionKind `json:"ApplicationTypeDefinitionKind,omitempty"` +} + +// ApplicationTypeManifest contains the manifest describing an application type registered in a Service +// Fabric cluster. +type ApplicationTypeManifest struct { + autorest.Response `json:"-"` + // Manifest - The XML manifest as a string. + Manifest *string `json:"Manifest,omitempty"` +} + +// ApplicationUpgradeCompletedEvent application Upgrade Completed event. +type ApplicationUpgradeCompletedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) MarshalJSON() ([]byte, error) { + auce.Kind = KindApplicationUpgradeCompleted + objectMap := make(map[string]interface{}) + if auce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = auce.ApplicationTypeName + } + if auce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = auce.ApplicationTypeVersion + } + if auce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = auce.OverallUpgradeElapsedTimeInMs + } + if auce.ApplicationID != nil { + objectMap["ApplicationId"] = auce.ApplicationID + } + if auce.EventInstanceID != nil { + objectMap["EventInstanceId"] = auce.EventInstanceID + } + if auce.Category != nil { + objectMap["Category"] = auce.Category + } + if auce.TimeStamp != nil { + objectMap["TimeStamp"] = auce.TimeStamp + } + if auce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = auce.HasCorrelatedEvents + } + if auce.Kind != "" { + objectMap["Kind"] = auce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &auce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return &auce, true +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeCompletedEvent. +func (auce ApplicationUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &auce, true +} + +// ApplicationUpgradeDescription describes the parameters for an application upgrade. Note that upgrade +// description replaces the existing application description. This means that if the parameters are not +// specified, the existing parameters on the applications will be overwritten with the empty parameters +// list. This would result in the application using the default value of the parameters from the +// application manifest. If you do not want to change any existing parameter values, please get the +// application parameters first using the GetApplicationInfo query and then supply those values as +// Parameters in this ApplicationUpgradeDescription. +type ApplicationUpgradeDescription struct { + // Name - The name of the target application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // Parameters - List of application parameters with overridden values from their default values specified in the application manifest. + Parameters *[]ApplicationParameter `json:"Parameters,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` +} + +// ApplicationUpgradeDomainCompletedEvent application Upgrade Domain Completed event. +type ApplicationUpgradeDomainCompletedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // UpgradeState - State of upgrade. + UpgradeState *string `json:"UpgradeState,omitempty"` + // UpgradeDomains - Upgrade domains. + UpgradeDomains *string `json:"UpgradeDomains,omitempty"` + // UpgradeDomainElapsedTimeInMs - Upgrade time of domain in milli-seconds. + UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) { + audce.Kind = KindApplicationUpgradeDomainCompleted + objectMap := make(map[string]interface{}) + if audce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = audce.ApplicationTypeName + } + if audce.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = audce.CurrentApplicationTypeVersion + } + if audce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = audce.ApplicationTypeVersion + } + if audce.UpgradeState != nil { + objectMap["UpgradeState"] = audce.UpgradeState + } + if audce.UpgradeDomains != nil { + objectMap["UpgradeDomains"] = audce.UpgradeDomains + } + if audce.UpgradeDomainElapsedTimeInMs != nil { + objectMap["UpgradeDomainElapsedTimeInMs"] = audce.UpgradeDomainElapsedTimeInMs + } + if audce.ApplicationID != nil { + objectMap["ApplicationId"] = audce.ApplicationID + } + if audce.EventInstanceID != nil { + objectMap["EventInstanceId"] = audce.EventInstanceID + } + if audce.Category != nil { + objectMap["Category"] = audce.Category + } + if audce.TimeStamp != nil { + objectMap["TimeStamp"] = audce.TimeStamp + } + if audce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = audce.HasCorrelatedEvents + } + if audce.Kind != "" { + objectMap["Kind"] = audce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &audce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return &audce, true +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeDomainCompletedEvent. +func (audce ApplicationUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &audce, true +} + +// ApplicationUpgradeProgressInfo describes the parameters for an application upgrade. +type ApplicationUpgradeProgressInfo struct { + autorest.Response `json:"-"` + // Name - The name of the target application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // UpgradeDomains - List of upgrade domains and their statuses. + UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // NextUpgradeDomain - The name of the next upgrade domain to be processed. + NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeDescription - Describes the parameters for an application upgrade. Note that upgrade description replaces the existing application description. This means that if the parameters are not specified, the existing parameters on the applications will be overwritten with the empty parameters list. This would result in the application using the default value of the parameters from the application manifest. If you do not want to change any existing parameter values, please get the application parameters first using the GetApplicationInfo query and then supply those values as Parameters in this ApplicationUpgradeDescription. + UpgradeDescription *ApplicationUpgradeDescription `json:"UpgradeDescription,omitempty"` + // UpgradeDurationInMilliseconds - The estimated total amount of time spent processing the overall upgrade. + UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"` + // UpgradeDomainDurationInMilliseconds - The estimated total amount of time spent processing the current upgrade domain. + UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"` + // UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The estimated UTC datetime when the upgrade started. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure. + UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"` + // UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade. + UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"` +} + +// ApplicationUpgradeRollbackCompletedEvent application Upgrade Rollback Completed event. +type ApplicationUpgradeRollbackCompletedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // FailureReason - Describes reason of failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) { + aurce.Kind = KindApplicationUpgradeRollbackCompleted + objectMap := make(map[string]interface{}) + if aurce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = aurce.ApplicationTypeName + } + if aurce.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = aurce.ApplicationTypeVersion + } + if aurce.FailureReason != nil { + objectMap["FailureReason"] = aurce.FailureReason + } + if aurce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = aurce.OverallUpgradeElapsedTimeInMs + } + if aurce.ApplicationID != nil { + objectMap["ApplicationId"] = aurce.ApplicationID + } + if aurce.EventInstanceID != nil { + objectMap["EventInstanceId"] = aurce.EventInstanceID + } + if aurce.Category != nil { + objectMap["Category"] = aurce.Category + } + if aurce.TimeStamp != nil { + objectMap["TimeStamp"] = aurce.TimeStamp + } + if aurce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = aurce.HasCorrelatedEvents + } + if aurce.Kind != "" { + objectMap["Kind"] = aurce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &aurce, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return &aurce, true +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackCompletedEvent. +func (aurce ApplicationUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &aurce, true +} + +// ApplicationUpgradeRollbackStartedEvent application Upgrade Rollback Started event. +type ApplicationUpgradeRollbackStartedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // FailureReason - Describes reason of failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall upgrade time in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) { + aurse.Kind = KindApplicationUpgradeRollbackStarted + objectMap := make(map[string]interface{}) + if aurse.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = aurse.ApplicationTypeName + } + if aurse.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = aurse.CurrentApplicationTypeVersion + } + if aurse.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = aurse.ApplicationTypeVersion + } + if aurse.FailureReason != nil { + objectMap["FailureReason"] = aurse.FailureReason + } + if aurse.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = aurse.OverallUpgradeElapsedTimeInMs + } + if aurse.ApplicationID != nil { + objectMap["ApplicationId"] = aurse.ApplicationID + } + if aurse.EventInstanceID != nil { + objectMap["EventInstanceId"] = aurse.EventInstanceID + } + if aurse.Category != nil { + objectMap["Category"] = aurse.Category + } + if aurse.TimeStamp != nil { + objectMap["TimeStamp"] = aurse.TimeStamp + } + if aurse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = aurse.HasCorrelatedEvents + } + if aurse.Kind != "" { + objectMap["Kind"] = aurse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &aurse, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return &aurse, true +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeRollbackStartedEvent. +func (aurse ApplicationUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &aurse, true +} + +// ApplicationUpgradeStartedEvent application Upgrade Started event. +type ApplicationUpgradeStartedEvent struct { + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // CurrentApplicationTypeVersion - Current Application type version. + CurrentApplicationTypeVersion *string `json:"CurrentApplicationTypeVersion,omitempty"` + // ApplicationTypeVersion - Target Application type version. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // UpgradeType - Type of upgrade. + UpgradeType *string `json:"UpgradeType,omitempty"` + // RollingUpgradeMode - Mode of upgrade. + RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"` + // FailureAction - Action if failed. + FailureAction *string `json:"FailureAction,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) MarshalJSON() ([]byte, error) { + ause.Kind = KindApplicationUpgradeStarted + objectMap := make(map[string]interface{}) + if ause.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = ause.ApplicationTypeName + } + if ause.CurrentApplicationTypeVersion != nil { + objectMap["CurrentApplicationTypeVersion"] = ause.CurrentApplicationTypeVersion + } + if ause.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = ause.ApplicationTypeVersion + } + if ause.UpgradeType != nil { + objectMap["UpgradeType"] = ause.UpgradeType + } + if ause.RollingUpgradeMode != nil { + objectMap["RollingUpgradeMode"] = ause.RollingUpgradeMode + } + if ause.FailureAction != nil { + objectMap["FailureAction"] = ause.FailureAction + } + if ause.ApplicationID != nil { + objectMap["ApplicationId"] = ause.ApplicationID + } + if ause.EventInstanceID != nil { + objectMap["EventInstanceId"] = ause.EventInstanceID + } + if ause.Category != nil { + objectMap["Category"] = ause.Category + } + if ause.TimeStamp != nil { + objectMap["TimeStamp"] = ause.TimeStamp + } + if ause.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ause.HasCorrelatedEvents + } + if ause.Kind != "" { + objectMap["Kind"] = ause.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ause, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return &ause, true +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ApplicationUpgradeStartedEvent. +func (ause ApplicationUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ause, true +} + +// ApplicationUpgradeUpdateDescription describes the parameters for updating an ongoing application +// upgrade. +type ApplicationUpgradeUpdateDescription struct { + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` + // UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster. + UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"` +} + +// BasicAutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will +// describe the actual mechanism. +type BasicAutoScalingMechanism interface { + AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) + AsAutoScalingMechanism() (*AutoScalingMechanism, bool) +} + +// AutoScalingMechanism describes the mechanism for performing auto scaling operation. Derived classes will +// describe the actual mechanism. +type AutoScalingMechanism struct { + // Kind - Possible values include: 'KindAutoScalingMechanism', 'KindAddRemoveReplica' + Kind KindBasicAutoScalingMechanism `json:"kind,omitempty"` +} + +func unmarshalBasicAutoScalingMechanism(body []byte) (BasicAutoScalingMechanism, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindAddRemoveReplica): + var arrsm AddRemoveReplicaScalingMechanism + err := json.Unmarshal(body, &arrsm) + return arrsm, err + default: + var asm AutoScalingMechanism + err := json.Unmarshal(body, &asm) + return asm, err + } +} +func unmarshalBasicAutoScalingMechanismArray(body []byte) ([]BasicAutoScalingMechanism, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + asmArray := make([]BasicAutoScalingMechanism, len(rawMessages)) + + for index, rawMessage := range rawMessages { + asm, err := unmarshalBasicAutoScalingMechanism(*rawMessage) + if err != nil { + return nil, err + } + asmArray[index] = asm + } + return asmArray, nil +} + +// MarshalJSON is the custom marshaler for AutoScalingMechanism. +func (asm AutoScalingMechanism) MarshalJSON() ([]byte, error) { + asm.Kind = KindAutoScalingMechanism + objectMap := make(map[string]interface{}) + if asm.Kind != "" { + objectMap["kind"] = asm.Kind + } + return json.Marshal(objectMap) +} + +// AsAddRemoveReplicaScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism. +func (asm AutoScalingMechanism) AsAddRemoveReplicaScalingMechanism() (*AddRemoveReplicaScalingMechanism, bool) { + return nil, false +} + +// AsAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism. +func (asm AutoScalingMechanism) AsAutoScalingMechanism() (*AutoScalingMechanism, bool) { + return &asm, true +} + +// AsBasicAutoScalingMechanism is the BasicAutoScalingMechanism implementation for AutoScalingMechanism. +func (asm AutoScalingMechanism) AsBasicAutoScalingMechanism() (BasicAutoScalingMechanism, bool) { + return &asm, true +} + +// BasicAutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes will +// describe resources or metrics. +type BasicAutoScalingMetric interface { + AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) + AsAutoScalingMetric() (*AutoScalingMetric, bool) +} + +// AutoScalingMetric describes the metric that is used for triggering auto scaling operation. Derived classes +// will describe resources or metrics. +type AutoScalingMetric struct { + // Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource' + Kind KindBasicAutoScalingMetric `json:"kind,omitempty"` +} + +func unmarshalBasicAutoScalingMetric(body []byte) (BasicAutoScalingMetric, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindResource): + var asrm AutoScalingResourceMetric + err := json.Unmarshal(body, &asrm) + return asrm, err + default: + var asm AutoScalingMetric + err := json.Unmarshal(body, &asm) + return asm, err + } +} +func unmarshalBasicAutoScalingMetricArray(body []byte) ([]BasicAutoScalingMetric, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + asmArray := make([]BasicAutoScalingMetric, len(rawMessages)) + + for index, rawMessage := range rawMessages { + asm, err := unmarshalBasicAutoScalingMetric(*rawMessage) + if err != nil { + return nil, err + } + asmArray[index] = asm + } + return asmArray, nil +} + +// MarshalJSON is the custom marshaler for AutoScalingMetric. +func (asm AutoScalingMetric) MarshalJSON() ([]byte, error) { + asm.Kind = KindAutoScalingMetric + objectMap := make(map[string]interface{}) + if asm.Kind != "" { + objectMap["kind"] = asm.Kind + } + return json.Marshal(objectMap) +} + +// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric. +func (asm AutoScalingMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) { + return nil, false +} + +// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric. +func (asm AutoScalingMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) { + return &asm, true +} + +// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingMetric. +func (asm AutoScalingMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) { + return &asm, true +} + +// AutoScalingPolicy describes the auto scaling policy +type AutoScalingPolicy struct { + // Name - The name of the auto scaling policy. + Name *string `json:"name,omitempty"` + // Trigger - Determines when auto scaling operation will be invoked. + Trigger BasicAutoScalingTrigger `json:"trigger,omitempty"` + // Mechanism - The mechanism that is used to scale when auto scaling operation is invoked. + Mechanism BasicAutoScalingMechanism `json:"mechanism,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for AutoScalingPolicy struct. +func (asp *AutoScalingPolicy) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + asp.Name = &name + } + case "trigger": + if v != nil { + trigger, err := unmarshalBasicAutoScalingTrigger(*v) + if err != nil { + return err + } + asp.Trigger = trigger + } + case "mechanism": + if v != nil { + mechanism, err := unmarshalBasicAutoScalingMechanism(*v) + if err != nil { + return err + } + asp.Mechanism = mechanism + } + } + } + + return nil +} + +// AutoScalingResourceMetric describes the resource that is used for triggering auto scaling. +type AutoScalingResourceMetric struct { + // Name - Name of the resource. Possible values include: 'CPU', 'MemoryInGB' + Name AutoScalingResourceMetricName `json:"name,omitempty"` + // Kind - Possible values include: 'KindAutoScalingMetric', 'KindResource' + Kind KindBasicAutoScalingMetric `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AutoScalingResourceMetric. +func (asrm AutoScalingResourceMetric) MarshalJSON() ([]byte, error) { + asrm.Kind = KindResource + objectMap := make(map[string]interface{}) + if asrm.Name != "" { + objectMap["name"] = asrm.Name + } + if asrm.Kind != "" { + objectMap["kind"] = asrm.Kind + } + return json.Marshal(objectMap) +} + +// AsAutoScalingResourceMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric. +func (asrm AutoScalingResourceMetric) AsAutoScalingResourceMetric() (*AutoScalingResourceMetric, bool) { + return &asrm, true +} + +// AsAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric. +func (asrm AutoScalingResourceMetric) AsAutoScalingMetric() (*AutoScalingMetric, bool) { + return nil, false +} + +// AsBasicAutoScalingMetric is the BasicAutoScalingMetric implementation for AutoScalingResourceMetric. +func (asrm AutoScalingResourceMetric) AsBasicAutoScalingMetric() (BasicAutoScalingMetric, bool) { + return &asrm, true +} + +// BasicAutoScalingTrigger describes the trigger for performing auto scaling operation. +type BasicAutoScalingTrigger interface { + AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) + AsAutoScalingTrigger() (*AutoScalingTrigger, bool) +} + +// AutoScalingTrigger describes the trigger for performing auto scaling operation. +type AutoScalingTrigger struct { + // Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad' + Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"` +} + +func unmarshalBasicAutoScalingTrigger(body []byte) (BasicAutoScalingTrigger, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindAverageLoad): + var alst AverageLoadScalingTrigger + err := json.Unmarshal(body, &alst) + return alst, err + default: + var astVar AutoScalingTrigger + err := json.Unmarshal(body, &astVar) + return astVar, err + } +} +func unmarshalBasicAutoScalingTriggerArray(body []byte) ([]BasicAutoScalingTrigger, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + astVarArray := make([]BasicAutoScalingTrigger, len(rawMessages)) + + for index, rawMessage := range rawMessages { + astVar, err := unmarshalBasicAutoScalingTrigger(*rawMessage) + if err != nil { + return nil, err + } + astVarArray[index] = astVar + } + return astVarArray, nil +} + +// MarshalJSON is the custom marshaler for AutoScalingTrigger. +func (astVar AutoScalingTrigger) MarshalJSON() ([]byte, error) { + astVar.Kind = KindAutoScalingTrigger + objectMap := make(map[string]interface{}) + if astVar.Kind != "" { + objectMap["kind"] = astVar.Kind + } + return json.Marshal(objectMap) +} + +// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger. +func (astVar AutoScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) { + return nil, false +} + +// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger. +func (astVar AutoScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) { + return &astVar, true +} + +// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AutoScalingTrigger. +func (astVar AutoScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) { + return &astVar, true +} + +// AverageLoadScalingTrigger describes the average load trigger used for auto scaling. +type AverageLoadScalingTrigger struct { + // Metric - Description of the metric that is used for scaling. + Metric BasicAutoScalingMetric `json:"metric,omitempty"` + // LowerLoadThreshold - Lower load threshold (if average load is below this threshold, service will scale down). + LowerLoadThreshold *float64 `json:"lowerLoadThreshold,omitempty"` + // UpperLoadThreshold - Upper load threshold (if average load is above this threshold, service will scale up). + UpperLoadThreshold *float64 `json:"upperLoadThreshold,omitempty"` + // ScaleIntervalInSeconds - Scale interval that indicates how often will this trigger be checked. + ScaleIntervalInSeconds *int32 `json:"scaleIntervalInSeconds,omitempty"` + // Kind - Possible values include: 'KindAutoScalingTrigger', 'KindAverageLoad' + Kind KindBasicAutoScalingTrigger `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AverageLoadScalingTrigger. +func (alst AverageLoadScalingTrigger) MarshalJSON() ([]byte, error) { + alst.Kind = KindAverageLoad + objectMap := make(map[string]interface{}) + objectMap["metric"] = alst.Metric + if alst.LowerLoadThreshold != nil { + objectMap["lowerLoadThreshold"] = alst.LowerLoadThreshold + } + if alst.UpperLoadThreshold != nil { + objectMap["upperLoadThreshold"] = alst.UpperLoadThreshold + } + if alst.ScaleIntervalInSeconds != nil { + objectMap["scaleIntervalInSeconds"] = alst.ScaleIntervalInSeconds + } + if alst.Kind != "" { + objectMap["kind"] = alst.Kind + } + return json.Marshal(objectMap) +} + +// AsAverageLoadScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger. +func (alst AverageLoadScalingTrigger) AsAverageLoadScalingTrigger() (*AverageLoadScalingTrigger, bool) { + return &alst, true +} + +// AsAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger. +func (alst AverageLoadScalingTrigger) AsAutoScalingTrigger() (*AutoScalingTrigger, bool) { + return nil, false +} + +// AsBasicAutoScalingTrigger is the BasicAutoScalingTrigger implementation for AverageLoadScalingTrigger. +func (alst AverageLoadScalingTrigger) AsBasicAutoScalingTrigger() (BasicAutoScalingTrigger, bool) { + return &alst, true +} + +// UnmarshalJSON is the custom unmarshaler for AverageLoadScalingTrigger struct. +func (alst *AverageLoadScalingTrigger) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "metric": + if v != nil { + metric, err := unmarshalBasicAutoScalingMetric(*v) + if err != nil { + return err + } + alst.Metric = metric + } + case "lowerLoadThreshold": + if v != nil { + var lowerLoadThreshold float64 + err = json.Unmarshal(*v, &lowerLoadThreshold) + if err != nil { + return err + } + alst.LowerLoadThreshold = &lowerLoadThreshold + } + case "upperLoadThreshold": + if v != nil { + var upperLoadThreshold float64 + err = json.Unmarshal(*v, &upperLoadThreshold) + if err != nil { + return err + } + alst.UpperLoadThreshold = &upperLoadThreshold + } + case "scaleIntervalInSeconds": + if v != nil { + var scaleIntervalInSeconds int32 + err = json.Unmarshal(*v, &scaleIntervalInSeconds) + if err != nil { + return err + } + alst.ScaleIntervalInSeconds = &scaleIntervalInSeconds + } + case "kind": + if v != nil { + var kind KindBasicAutoScalingTrigger + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + alst.Kind = kind + } + } + } + + return nil +} + +// AveragePartitionLoadScalingTrigger represents a scaling trigger related to an average load of a +// metric/resource of a partition. +type AveragePartitionLoadScalingTrigger struct { + // MetricName - The name of the metric for which usage should be tracked. + MetricName *string `json:"MetricName,omitempty"` + // LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed. + LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"` + // UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed. + UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"` + // ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not. + ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"` + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) MarshalJSON() ([]byte, error) { + aplst.Kind = KindAveragePartitionLoad + objectMap := make(map[string]interface{}) + if aplst.MetricName != nil { + objectMap["MetricName"] = aplst.MetricName + } + if aplst.LowerLoadThreshold != nil { + objectMap["LowerLoadThreshold"] = aplst.LowerLoadThreshold + } + if aplst.UpperLoadThreshold != nil { + objectMap["UpperLoadThreshold"] = aplst.UpperLoadThreshold + } + if aplst.ScaleIntervalInSeconds != nil { + objectMap["ScaleIntervalInSeconds"] = aplst.ScaleIntervalInSeconds + } + if aplst.Kind != "" { + objectMap["Kind"] = aplst.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return &aplst, true +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return nil, false +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return nil, false +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AveragePartitionLoadScalingTrigger. +func (aplst AveragePartitionLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &aplst, true +} + +// AverageServiceLoadScalingTrigger represents a scaling policy related to an average load of a +// metric/resource of a service. +type AverageServiceLoadScalingTrigger struct { + // MetricName - The name of the metric for which usage should be tracked. + MetricName *string `json:"MetricName,omitempty"` + // LowerLoadThreshold - The lower limit of the load below which a scale in operation should be performed. + LowerLoadThreshold *string `json:"LowerLoadThreshold,omitempty"` + // UpperLoadThreshold - The upper limit of the load beyond which a scale out operation should be performed. + UpperLoadThreshold *string `json:"UpperLoadThreshold,omitempty"` + // ScaleIntervalInSeconds - The period in seconds on which a decision is made whether to scale or not. + ScaleIntervalInSeconds *int64 `json:"ScaleIntervalInSeconds,omitempty"` + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) MarshalJSON() ([]byte, error) { + aslst.Kind = KindAverageServiceLoad + objectMap := make(map[string]interface{}) + if aslst.MetricName != nil { + objectMap["MetricName"] = aslst.MetricName + } + if aslst.LowerLoadThreshold != nil { + objectMap["LowerLoadThreshold"] = aslst.LowerLoadThreshold + } + if aslst.UpperLoadThreshold != nil { + objectMap["UpperLoadThreshold"] = aslst.UpperLoadThreshold + } + if aslst.ScaleIntervalInSeconds != nil { + objectMap["ScaleIntervalInSeconds"] = aslst.ScaleIntervalInSeconds + } + if aslst.Kind != "" { + objectMap["Kind"] = aslst.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return nil, false +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return &aslst, true +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return nil, false +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for AverageServiceLoadScalingTrigger. +func (aslst AverageServiceLoadScalingTrigger) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &aslst, true +} + +// AzureBlobBackupStorageDescription describes the parameters for Azure blob store used for storing and +// enumerating backups. +type AzureBlobBackupStorageDescription struct { + // ConnectionString - The connection string to connect to the Azure blob store. + ConnectionString *string `json:"ConnectionString,omitempty"` + // ContainerName - The name of the container in the blob store to store and enumerate backups from. + ContainerName *string `json:"ContainerName,omitempty"` + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) MarshalJSON() ([]byte, error) { + abbsd.StorageKind = StorageKindAzureBlobStore + objectMap := make(map[string]interface{}) + if abbsd.ConnectionString != nil { + objectMap["ConnectionString"] = abbsd.ConnectionString + } + if abbsd.ContainerName != nil { + objectMap["ContainerName"] = abbsd.ContainerName + } + if abbsd.FriendlyName != nil { + objectMap["FriendlyName"] = abbsd.FriendlyName + } + if abbsd.StorageKind != "" { + objectMap["StorageKind"] = abbsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return &abbsd, true +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return nil, false +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return nil, false +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for AzureBlobBackupStorageDescription. +func (abbsd AzureBlobBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &abbsd, true +} + +// AzureInternalMonitoringPipelineSinkDescription diagnostics settings for Geneva. +type AzureInternalMonitoringPipelineSinkDescription struct { + // AccountName - Azure Internal monitoring pipeline account. + AccountName *string `json:"accountName,omitempty"` + // Namespace - Azure Internal monitoring pipeline account namespace. + Namespace *string `json:"namespace,omitempty"` + // MaConfigURL - Azure Internal monitoring agent configuration. + MaConfigURL *string `json:"maConfigUrl,omitempty"` + // FluentdConfigURL - Azure Internal monitoring agent fluentd configuration. + FluentdConfigURL interface{} `json:"fluentdConfigUrl,omitempty"` + // AutoKeyConfigURL - Azure Internal monitoring pipeline autokey associated with the certificate. + AutoKeyConfigURL *string `json:"autoKeyConfigUrl,omitempty"` + // Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription + Name *string `json:"name,omitempty"` + // Description - A description of the sink. + Description *string `json:"description,omitempty"` + // Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline' + Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for AzureInternalMonitoringPipelineSinkDescription. +func (aimpsd AzureInternalMonitoringPipelineSinkDescription) MarshalJSON() ([]byte, error) { + aimpsd.Kind = KindAzureInternalMonitoringPipeline + objectMap := make(map[string]interface{}) + if aimpsd.AccountName != nil { + objectMap["accountName"] = aimpsd.AccountName + } + if aimpsd.Namespace != nil { + objectMap["namespace"] = aimpsd.Namespace + } + if aimpsd.MaConfigURL != nil { + objectMap["maConfigUrl"] = aimpsd.MaConfigURL + } + if aimpsd.FluentdConfigURL != nil { + objectMap["fluentdConfigUrl"] = aimpsd.FluentdConfigURL + } + if aimpsd.AutoKeyConfigURL != nil { + objectMap["autoKeyConfigUrl"] = aimpsd.AutoKeyConfigURL + } + if aimpsd.Name != nil { + objectMap["name"] = aimpsd.Name + } + if aimpsd.Description != nil { + objectMap["description"] = aimpsd.Description + } + if aimpsd.Kind != "" { + objectMap["kind"] = aimpsd.Kind + } + return json.Marshal(objectMap) +} + +// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription. +func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) { + return &aimpsd, true +} + +// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription. +func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) { + return nil, false +} + +// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for AzureInternalMonitoringPipelineSinkDescription. +func (aimpsd AzureInternalMonitoringPipelineSinkDescription) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) { + return &aimpsd, true +} + +// BasicBackupConfigurationInfo describes the backup configuration information. +type BasicBackupConfigurationInfo interface { + AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) + AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) + AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) + AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) +} + +// BackupConfigurationInfo describes the backup configuration information. +type BackupConfigurationInfo struct { + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +func unmarshalBasicBackupConfigurationInfo(body []byte) (BasicBackupConfigurationInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicBackupConfigurationInfoKindApplication): + var abci ApplicationBackupConfigurationInfo + err := json.Unmarshal(body, &abci) + return abci, err + case string(KindBasicBackupConfigurationInfoKindService): + var sbci ServiceBackupConfigurationInfo + err := json.Unmarshal(body, &sbci) + return sbci, err + case string(KindBasicBackupConfigurationInfoKindPartition): + var pbci PartitionBackupConfigurationInfo + err := json.Unmarshal(body, &pbci) + return pbci, err + default: + var bci BackupConfigurationInfo + err := json.Unmarshal(body, &bci) + return bci, err + } +} +func unmarshalBasicBackupConfigurationInfoArray(body []byte) ([]BasicBackupConfigurationInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bciArray := make([]BasicBackupConfigurationInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bci, err := unmarshalBasicBackupConfigurationInfo(*rawMessage) + if err != nil { + return nil, err + } + bciArray[index] = bci + } + return bciArray, nil +} + +// MarshalJSON is the custom marshaler for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) MarshalJSON() ([]byte, error) { + bci.Kind = KindBasicBackupConfigurationInfoKindBackupConfigurationInfo + objectMap := make(map[string]interface{}) + if bci.PolicyName != nil { + objectMap["PolicyName"] = bci.PolicyName + } + if bci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = bci.PolicyInheritedFrom + } + if bci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = bci.SuspensionInfo + } + if bci.Kind != "" { + objectMap["Kind"] = bci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return &bci, true +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for BackupConfigurationInfo. +func (bci BackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &bci, true +} + +// BasicBackupEntity describes the Service Fabric entity that is configured for backup. +type BasicBackupEntity interface { + AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) + AsServiceBackupEntity() (*ServiceBackupEntity, bool) + AsPartitionBackupEntity() (*PartitionBackupEntity, bool) + AsBackupEntity() (*BackupEntity, bool) +} + +// BackupEntity describes the Service Fabric entity that is configured for backup. +type BackupEntity struct { + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +func unmarshalBasicBackupEntity(body []byte) (BasicBackupEntity, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["EntityKind"] { + case string(EntityKindApplication1): + var abe ApplicationBackupEntity + err := json.Unmarshal(body, &abe) + return abe, err + case string(EntityKindService1): + var sbe ServiceBackupEntity + err := json.Unmarshal(body, &sbe) + return sbe, err + case string(EntityKindPartition1): + var pbe PartitionBackupEntity + err := json.Unmarshal(body, &pbe) + return pbe, err + default: + var be BackupEntity + err := json.Unmarshal(body, &be) + return be, err + } +} +func unmarshalBasicBackupEntityArray(body []byte) ([]BasicBackupEntity, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + beArray := make([]BasicBackupEntity, len(rawMessages)) + + for index, rawMessage := range rawMessages { + be, err := unmarshalBasicBackupEntity(*rawMessage) + if err != nil { + return nil, err + } + beArray[index] = be + } + return beArray, nil +} + +// MarshalJSON is the custom marshaler for BackupEntity. +func (be BackupEntity) MarshalJSON() ([]byte, error) { + be.EntityKind = EntityKindBackupEntity + objectMap := make(map[string]interface{}) + if be.EntityKind != "" { + objectMap["EntityKind"] = be.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return &be, true +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for BackupEntity. +func (be BackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &be, true +} + +// BackupInfo represents a backup point which can be used to trigger a restore. +type BackupInfo struct { + // BackupID - Unique backup ID . + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupChainID - Unique backup chain ID. All backups part of the same chain has the same backup chain id. A backup chain is comprised of 1 full backup and multiple incremental backups. + BackupChainID *uuid.UUID `json:"BackupChainId,omitempty"` + // ApplicationName - Name of the Service Fabric application this partition backup belongs to. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - Name of the Service Fabric service this partition backup belongs to. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionInformation - Information about the partition to which this backup belongs to + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // BackupLocation - Location of the backup, relative to the backup store. + BackupLocation *string `json:"BackupLocation,omitempty"` + // BackupType - Describes the type of backup, whether its full or incremental. Possible values include: 'BackupTypeInvalid', 'BackupTypeFull', 'BackupTypeIncremental' + BackupType BackupType `json:"BackupType,omitempty"` + // EpochOfLastBackupRecord - Epoch of the last record in this backup. + EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"` + // LsnOfLastBackupRecord - LSN of the last record in this backup. + LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"` + // CreationTimeUtc - The date time when this backup was taken. + CreationTimeUtc *date.Time `json:"CreationTimeUtc,omitempty"` + // ServiceManifestVersion - Manifest Version of the service this partition backup belongs to. + ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"` + // FailureError - Denotes the failure encountered in getting backup point information. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupInfo struct. +func (bi *BackupInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupId": + if v != nil { + var backupID uuid.UUID + err = json.Unmarshal(*v, &backupID) + if err != nil { + return err + } + bi.BackupID = &backupID + } + case "BackupChainId": + if v != nil { + var backupChainID uuid.UUID + err = json.Unmarshal(*v, &backupChainID) + if err != nil { + return err + } + bi.BackupChainID = &backupChainID + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + bi.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + bi.ServiceName = &serviceName + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + bi.PartitionInformation = partitionInformation + } + case "BackupLocation": + if v != nil { + var backupLocation string + err = json.Unmarshal(*v, &backupLocation) + if err != nil { + return err + } + bi.BackupLocation = &backupLocation + } + case "BackupType": + if v != nil { + var backupType BackupType + err = json.Unmarshal(*v, &backupType) + if err != nil { + return err + } + bi.BackupType = backupType + } + case "EpochOfLastBackupRecord": + if v != nil { + var epochOfLastBackupRecord Epoch + err = json.Unmarshal(*v, &epochOfLastBackupRecord) + if err != nil { + return err + } + bi.EpochOfLastBackupRecord = &epochOfLastBackupRecord + } + case "LsnOfLastBackupRecord": + if v != nil { + var lsnOfLastBackupRecord string + err = json.Unmarshal(*v, &lsnOfLastBackupRecord) + if err != nil { + return err + } + bi.LsnOfLastBackupRecord = &lsnOfLastBackupRecord + } + case "CreationTimeUtc": + if v != nil { + var creationTimeUtc date.Time + err = json.Unmarshal(*v, &creationTimeUtc) + if err != nil { + return err + } + bi.CreationTimeUtc = &creationTimeUtc + } + case "ServiceManifestVersion": + if v != nil { + var serviceManifestVersion string + err = json.Unmarshal(*v, &serviceManifestVersion) + if err != nil { + return err + } + bi.ServiceManifestVersion = &serviceManifestVersion + } + case "FailureError": + if v != nil { + var failureError FabricErrorError + err = json.Unmarshal(*v, &failureError) + if err != nil { + return err + } + bi.FailureError = &failureError + } + } + } + + return nil +} + +// BackupPartitionDescription describes the parameters for triggering partition's backup. +type BackupPartitionDescription struct { + // BackupStorage - Specifies the details of the backup storage where to save the backup. + BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupPartitionDescription struct. +func (bpd *BackupPartitionDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupStorage": + if v != nil { + backupStorage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + bpd.BackupStorage = backupStorage + } + } + } + + return nil +} + +// BackupPolicyDescription describes a backup policy for configuring periodic backup. +type BackupPolicyDescription struct { + autorest.Response `json:"-"` + // Name - The unique name identifying this backup policy. + Name *string `json:"Name,omitempty"` + // AutoRestoreOnDataLoss - Specifies whether to trigger restore automatically using the latest available backup in case the partition experiences a data loss event. + AutoRestoreOnDataLoss *bool `json:"AutoRestoreOnDataLoss,omitempty"` + // MaxIncrementalBackups - Defines the maximum number of incremental backups to be taken between two full backups. This is just the upper limit. A full backup may be taken before specified number of incremental backups are completed in one of the following conditions + // - The replica has never taken a full backup since it has become primary, + // - Some of the log records since the last backup has been truncated, or + // - Replica passed the MaxAccumulatedBackupLogSizeInMB limit. + MaxIncrementalBackups *int32 `json:"MaxIncrementalBackups,omitempty"` + // Schedule - Describes the backup schedule parameters. + Schedule BasicBackupScheduleDescription `json:"Schedule,omitempty"` + // Storage - Describes the details of backup storage where to store the periodic backups. + Storage BasicBackupStorageDescription `json:"Storage,omitempty"` + // RetentionPolicy - Describes the policy to retain backups in storage. + RetentionPolicy BasicRetentionPolicyDescription `json:"RetentionPolicy,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for BackupPolicyDescription struct. +func (bpd *BackupPolicyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + bpd.Name = &name + } + case "AutoRestoreOnDataLoss": + if v != nil { + var autoRestoreOnDataLoss bool + err = json.Unmarshal(*v, &autoRestoreOnDataLoss) + if err != nil { + return err + } + bpd.AutoRestoreOnDataLoss = &autoRestoreOnDataLoss + } + case "MaxIncrementalBackups": + if v != nil { + var maxIncrementalBackups int32 + err = json.Unmarshal(*v, &maxIncrementalBackups) + if err != nil { + return err + } + bpd.MaxIncrementalBackups = &maxIncrementalBackups + } + case "Schedule": + if v != nil { + schedule, err := unmarshalBasicBackupScheduleDescription(*v) + if err != nil { + return err + } + bpd.Schedule = schedule + } + case "Storage": + if v != nil { + storage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + bpd.Storage = storage + } + case "RetentionPolicy": + if v != nil { + retentionPolicy, err := unmarshalBasicRetentionPolicyDescription(*v) + if err != nil { + return err + } + bpd.RetentionPolicy = retentionPolicy + } + } + } + + return nil +} + +// BackupProgressInfo describes the progress of a partition's backup. +type BackupProgressInfo struct { + autorest.Response `json:"-"` + // BackupState - Represents the current state of the partition backup operation. Possible values include: 'BackupStateInvalid', 'BackupStateAccepted', 'BackupStateBackupInProgress', 'BackupStateSuccess', 'BackupStateFailure', 'BackupStateTimeout' + BackupState BackupState `json:"BackupState,omitempty"` + // TimeStampUtc - TimeStamp in UTC when operation succeeded or failed. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // BackupID - Unique ID of the newly created backup. + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupLocation - Location, relative to the backup store, of the newly created backup. + BackupLocation *string `json:"BackupLocation,omitempty"` + // EpochOfLastBackupRecord - Specifies the epoch of the last record included in backup. + EpochOfLastBackupRecord *Epoch `json:"EpochOfLastBackupRecord,omitempty"` + // LsnOfLastBackupRecord - The LSN of last record included in backup. + LsnOfLastBackupRecord *string `json:"LsnOfLastBackupRecord,omitempty"` + // FailureError - Denotes the failure encountered in performing backup operation. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// BasicBackupScheduleDescription describes the backup schedule parameters. +type BasicBackupScheduleDescription interface { + AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) + AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) + AsBackupScheduleDescription() (*BackupScheduleDescription, bool) +} + +// BackupScheduleDescription describes the backup schedule parameters. +type BackupScheduleDescription struct { + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +func unmarshalBasicBackupScheduleDescription(body []byte) (BasicBackupScheduleDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ScheduleKind"] { + case string(ScheduleKindFrequencyBased): + var fbbsd FrequencyBasedBackupScheduleDescription + err := json.Unmarshal(body, &fbbsd) + return fbbsd, err + case string(ScheduleKindTimeBased): + var tbbsd TimeBasedBackupScheduleDescription + err := json.Unmarshal(body, &tbbsd) + return tbbsd, err + default: + var bsd BackupScheduleDescription + err := json.Unmarshal(body, &bsd) + return bsd, err + } +} +func unmarshalBasicBackupScheduleDescriptionArray(body []byte) ([]BasicBackupScheduleDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bsdArray := make([]BasicBackupScheduleDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bsd, err := unmarshalBasicBackupScheduleDescription(*rawMessage) + if err != nil { + return nil, err + } + bsdArray[index] = bsd + } + return bsdArray, nil +} + +// MarshalJSON is the custom marshaler for BackupScheduleDescription. +func (bsd BackupScheduleDescription) MarshalJSON() ([]byte, error) { + bsd.ScheduleKind = ScheduleKindBackupScheduleDescription + objectMap := make(map[string]interface{}) + if bsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = bsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return &bsd, true +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for BackupScheduleDescription. +func (bsd BackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &bsd, true +} + +// BasicBackupStorageDescription describes the parameters for the backup storage. +type BasicBackupStorageDescription interface { + AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) + AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) + AsBackupStorageDescription() (*BackupStorageDescription, bool) +} + +// BackupStorageDescription describes the parameters for the backup storage. +type BackupStorageDescription struct { + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +func unmarshalBasicBackupStorageDescription(body []byte) (BasicBackupStorageDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["StorageKind"] { + case string(StorageKindAzureBlobStore): + var abbsd AzureBlobBackupStorageDescription + err := json.Unmarshal(body, &abbsd) + return abbsd, err + case string(StorageKindFileShare): + var fsbsd FileShareBackupStorageDescription + err := json.Unmarshal(body, &fsbsd) + return fsbsd, err + default: + var bsd BackupStorageDescription + err := json.Unmarshal(body, &bsd) + return bsd, err + } +} +func unmarshalBasicBackupStorageDescriptionArray(body []byte) ([]BasicBackupStorageDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + bsdArray := make([]BasicBackupStorageDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + bsd, err := unmarshalBasicBackupStorageDescription(*rawMessage) + if err != nil { + return nil, err + } + bsdArray[index] = bsd + } + return bsdArray, nil +} + +// MarshalJSON is the custom marshaler for BackupStorageDescription. +func (bsd BackupStorageDescription) MarshalJSON() ([]byte, error) { + bsd.StorageKind = StorageKindBackupStorageDescription + objectMap := make(map[string]interface{}) + if bsd.FriendlyName != nil { + objectMap["FriendlyName"] = bsd.FriendlyName + } + if bsd.StorageKind != "" { + objectMap["StorageKind"] = bsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return nil, false +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return nil, false +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return &bsd, true +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for BackupStorageDescription. +func (bsd BackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &bsd, true +} + +// BackupSuspensionInfo describes the backup suspension details. +type BackupSuspensionInfo struct { + // IsSuspended - Indicates whether periodic backup is suspended at this level or not. + IsSuspended *bool `json:"IsSuspended,omitempty"` + // SuspensionInheritedFrom - Specifies the scope at which the backup suspension was applied. Possible values include: 'BackupSuspensionScopeInvalid', 'BackupSuspensionScopePartition', 'BackupSuspensionScopeService', 'BackupSuspensionScopeApplication' + SuspensionInheritedFrom BackupSuspensionScope `json:"SuspensionInheritedFrom,omitempty"` +} + +// BasicRetentionPolicyDescription describes basic retention policy. +type BasicRetentionPolicyDescription struct { + // RetentionDuration - It is the minimum duration for which a backup created, will remain stored in the storage and might get deleted after that span of time. It should be specified in ISO8601 format. + RetentionDuration *string `json:"RetentionDuration,omitempty"` + // MinimumNumberOfBackups - It is the minimum number of backups to be retained at any point of time. If specified with a non zero value, backups will not be deleted even if the backups have gone past retention duration and have number of backups less than or equal to it. + MinimumNumberOfBackups *int32 `json:"MinimumNumberOfBackups,omitempty"` + // RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1' + RetentionPolicyType RetentionPolicyTypeBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"` +} + +// MarshalJSON is the custom marshaler for BasicRetentionPolicyDescription. +func (brpd BasicRetentionPolicyDescription) MarshalJSON() ([]byte, error) { + brpd.RetentionPolicyType = RetentionPolicyTypeBasic1 + objectMap := make(map[string]interface{}) + if brpd.RetentionDuration != nil { + objectMap["RetentionDuration"] = brpd.RetentionDuration + } + if brpd.MinimumNumberOfBackups != nil { + objectMap["MinimumNumberOfBackups"] = brpd.MinimumNumberOfBackups + } + if brpd.RetentionPolicyType != "" { + objectMap["RetentionPolicyType"] = brpd.RetentionPolicyType + } + return json.Marshal(objectMap) +} + +// AsBasicRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription. +func (brpd BasicRetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) { + return &brpd, true +} + +// AsRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription. +func (brpd BasicRetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) { + return nil, false +} + +// AsBasicRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for BasicRetentionPolicyDescription. +func (brpd BasicRetentionPolicyDescription) AsBasicRetentionPolicyDescription() (BasicRetentionPolicyDescription, bool) { + return &brpd, true +} + +// BinaryPropertyValue describes a Service Fabric property value of type Binary. +type BinaryPropertyValue struct { + // Data - Array of bytes to be sent as an integer array. Each element of array is a number between 0 and 255. + Data *[]int32 `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for BinaryPropertyValue. +func (bpv BinaryPropertyValue) MarshalJSON() ([]byte, error) { + bpv.Kind = KindBinary + objectMap := make(map[string]interface{}) + if bpv.Data != nil { + objectMap["Data"] = bpv.Data + } + if bpv.Kind != "" { + objectMap["Kind"] = bpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return &bpv, true +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for BinaryPropertyValue. +func (bpv BinaryPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &bpv, true +} + +// Chaos contains a description of Chaos. +type Chaos struct { + autorest.Response `json:"-"` + // ChaosParameters - If Chaos is running, these are the parameters Chaos is running with. + ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"` + // Status - Current status of the Chaos run. Possible values include: 'ChaosStatusInvalid', 'ChaosStatusRunning', 'ChaosStatusStopped' + Status ChaosStatus `json:"Status,omitempty"` + // ScheduleStatus - Current status of the schedule. Possible values include: 'ChaosScheduleStatusInvalid', 'ChaosScheduleStatusStopped', 'ChaosScheduleStatusActive', 'ChaosScheduleStatusExpired', 'ChaosScheduleStatusPending' + ScheduleStatus ChaosScheduleStatus `json:"ScheduleStatus,omitempty"` +} + +// ChaosCodePackageRestartScheduledEvent chaos Restart Code Package Fault Scheduled event. +type ChaosCodePackageRestartScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // ServiceManifestName - Service manifest name. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - Code package name. + CodePackageName *string `json:"CodePackageName,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) MarshalJSON() ([]byte, error) { + ccprse.Kind = KindChaosCodePackageRestartScheduled + objectMap := make(map[string]interface{}) + if ccprse.FaultGroupID != nil { + objectMap["FaultGroupId"] = ccprse.FaultGroupID + } + if ccprse.FaultID != nil { + objectMap["FaultId"] = ccprse.FaultID + } + if ccprse.NodeName != nil { + objectMap["NodeName"] = ccprse.NodeName + } + if ccprse.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = ccprse.ServiceManifestName + } + if ccprse.CodePackageName != nil { + objectMap["CodePackageName"] = ccprse.CodePackageName + } + if ccprse.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = ccprse.ServicePackageActivationID + } + if ccprse.ApplicationID != nil { + objectMap["ApplicationId"] = ccprse.ApplicationID + } + if ccprse.EventInstanceID != nil { + objectMap["EventInstanceId"] = ccprse.EventInstanceID + } + if ccprse.Category != nil { + objectMap["Category"] = ccprse.Category + } + if ccprse.TimeStamp != nil { + objectMap["TimeStamp"] = ccprse.TimeStamp + } + if ccprse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ccprse.HasCorrelatedEvents + } + if ccprse.Kind != "" { + objectMap["Kind"] = ccprse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &ccprse, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return &ccprse, true +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosCodePackageRestartScheduledEvent. +func (ccprse ChaosCodePackageRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ccprse, true +} + +// ChaosContext describes a map, which is a collection of (string, string) type key-value pairs. The map +// can be used to record information about +// the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most +// 4095 characters long. +// This map is set by the starter of the Chaos run to optionally store the context about the specific run. +type ChaosContext struct { + // Map - Describes a map that contains a collection of ChaosContextMapItem's. + Map map[string]*string `json:"Map"` +} + +// MarshalJSON is the custom marshaler for ChaosContext. +func (cc ChaosContext) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if cc.Map != nil { + objectMap["Map"] = cc.Map + } + return json.Marshal(objectMap) +} + +// BasicChaosEvent represents an event generated during a Chaos run. +type BasicChaosEvent interface { + AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) + AsStartedChaosEvent() (*StartedChaosEvent, bool) + AsStoppedChaosEvent() (*StoppedChaosEvent, bool) + AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) + AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) + AsWaitingChaosEvent() (*WaitingChaosEvent, bool) + AsChaosEvent() (*ChaosEvent, bool) +} + +// ChaosEvent represents an event generated during a Chaos run. +type ChaosEvent struct { + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicChaosEvent(body []byte) (BasicChaosEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindExecutingFaults): + var efce ExecutingFaultsChaosEvent + err := json.Unmarshal(body, &efce) + return efce, err + case string(KindStarted): + var sce StartedChaosEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindStopped): + var sce StoppedChaosEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindTestError): + var tece TestErrorChaosEvent + err := json.Unmarshal(body, &tece) + return tece, err + case string(KindValidationFailed): + var vfce ValidationFailedChaosEvent + err := json.Unmarshal(body, &vfce) + return vfce, err + case string(KindWaiting): + var wce WaitingChaosEvent + err := json.Unmarshal(body, &wce) + return wce, err + default: + var ce ChaosEvent + err := json.Unmarshal(body, &ce) + return ce, err + } +} +func unmarshalBasicChaosEventArray(body []byte) ([]BasicChaosEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ceArray := make([]BasicChaosEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ce, err := unmarshalBasicChaosEvent(*rawMessage) + if err != nil { + return nil, err + } + ceArray[index] = ce + } + return ceArray, nil +} + +// MarshalJSON is the custom marshaler for ChaosEvent. +func (ce ChaosEvent) MarshalJSON() ([]byte, error) { + ce.Kind = KindChaosEvent + objectMap := make(map[string]interface{}) + if ce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = ce.TimeStampUtc + } + if ce.Kind != "" { + objectMap["Kind"] = ce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return &ce, true +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ChaosEvent. +func (ce ChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &ce, true +} + +// ChaosEventsSegment contains the list of Chaos events and the continuation token to get the next segment. +type ChaosEventsSegment struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // History - List of Chaos events that meet the user-supplied criteria. + History *[]ChaosEventWrapper `json:"History,omitempty"` +} + +// ChaosEventWrapper wrapper object for Chaos event. +type ChaosEventWrapper struct { + // ChaosEvent - Represents an event generated during a Chaos run. + ChaosEvent BasicChaosEvent `json:"ChaosEvent,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ChaosEventWrapper struct. +func (cew *ChaosEventWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ChaosEvent": + if v != nil { + chaosEvent, err := unmarshalBasicChaosEvent(*v) + if err != nil { + return err + } + cew.ChaosEvent = chaosEvent + } + } + } + + return nil +} + +// ChaosNodeRestartScheduledEvent chaos Restart Node Fault Scheduled event. +type ChaosNodeRestartScheduledEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) MarshalJSON() ([]byte, error) { + cnrse.Kind = KindChaosNodeRestartScheduled + objectMap := make(map[string]interface{}) + if cnrse.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = cnrse.NodeInstanceID + } + if cnrse.FaultGroupID != nil { + objectMap["FaultGroupId"] = cnrse.FaultGroupID + } + if cnrse.FaultID != nil { + objectMap["FaultId"] = cnrse.FaultID + } + if cnrse.NodeName != nil { + objectMap["NodeName"] = cnrse.NodeName + } + if cnrse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cnrse.EventInstanceID + } + if cnrse.Category != nil { + objectMap["Category"] = cnrse.Category + } + if cnrse.TimeStamp != nil { + objectMap["TimeStamp"] = cnrse.TimeStamp + } + if cnrse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cnrse.HasCorrelatedEvents + } + if cnrse.Kind != "" { + objectMap["Kind"] = cnrse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &cnrse, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return &cnrse, true +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosNodeRestartScheduledEvent. +func (cnrse ChaosNodeRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cnrse, true +} + +// ChaosParameters defines all the parameters to configure a Chaos run. +type ChaosParameters struct { + // TimeToRunInSeconds - Total time (in seconds) for which Chaos will run before automatically stopping. The maximum allowed value is 4,294,967,295 (System.UInt32.MaxValue). + TimeToRunInSeconds *string `json:"TimeToRunInSeconds,omitempty"` + // MaxClusterStabilizationTimeoutInSeconds - The maximum amount of time to wait for all cluster entities to become stable and healthy. Chaos executes in iterations and at the start of each iteration it validates the health of cluster entities. + // During validation if a cluster entity is not stable and healthy within MaxClusterStabilizationTimeoutInSeconds, Chaos generates a validation failed event. + MaxClusterStabilizationTimeoutInSeconds *int64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"` + // MaxConcurrentFaults - MaxConcurrentFaults is the maximum number of concurrent faults induced per iteration. + // Chaos executes in iterations and two consecutive iterations are separated by a validation phase. + // The higher the concurrency, the more aggressive the injection of faults, leading to inducing more complex series of states to uncover bugs. + // The recommendation is to start with a value of 2 or 3 and to exercise caution while moving up. + MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"` + // EnableMoveReplicaFaults - Enables or disables the move primary and move secondary faults. + EnableMoveReplicaFaults *bool `json:"EnableMoveReplicaFaults,omitempty"` + // WaitTimeBetweenFaultsInSeconds - Wait time (in seconds) between consecutive faults within a single iteration. + // The larger the value, the lower the overlapping between faults and the simpler the sequence of state transitions that the cluster goes through. + // The recommendation is to start with a value between 1 and 5 and exercise caution while moving up. + WaitTimeBetweenFaultsInSeconds *int64 `json:"WaitTimeBetweenFaultsInSeconds,omitempty"` + // WaitTimeBetweenIterationsInSeconds - Time-separation (in seconds) between two consecutive iterations of Chaos. + // The larger the value, the lower the fault injection rate. + WaitTimeBetweenIterationsInSeconds *int64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"` + // ClusterHealthPolicy - Passed-in cluster health policy is used to validate health of the cluster in between Chaos iterations. If the cluster health is in error or if an unexpected exception happens during fault execution--to provide the cluster with some time to recuperate--Chaos will wait for 30 minutes before the next health-check. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // Context - Describes a map, which is a collection of (string, string) type key-value pairs. The map can be used to record information about + // the Chaos run. There cannot be more than 100 such pairs and each string (key or value) can be at most 4095 characters long. + // This map is set by the starter of the Chaos run to optionally store the context about the specific run. + Context *ChaosContext `json:"Context,omitempty"` + // ChaosTargetFilter - List of cluster entities to target for Chaos faults. + // This filter can be used to target Chaos faults only to certain node types or only to certain application instances. If ChaosTargetFilter is not used, Chaos faults all cluster entities. + // If ChaosTargetFilter is used, Chaos faults only the entities that meet the ChaosTargetFilter specification. + ChaosTargetFilter *ChaosTargetFilter `json:"ChaosTargetFilter,omitempty"` +} + +// ChaosParametersDictionaryItem defines an item in ChaosParametersDictionary of the Chaos Schedule. +type ChaosParametersDictionaryItem struct { + // Key - The key identifying the Chaos Parameter in the dictionary. This key is referenced by Chaos Schedule Jobs. + Key *string `json:"Key,omitempty"` + // Value - Defines all the parameters to configure a Chaos run. + Value *ChaosParameters `json:"Value,omitempty"` +} + +// ChaosPartitionPrimaryMoveScheduledEvent chaos Move Primary Fault Scheduled event. +type ChaosPartitionPrimaryMoveScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceName - Service name. + ServiceName *string `json:"ServiceName,omitempty"` + // NodeTo - The name of a Service Fabric node. + NodeTo *string `json:"NodeTo,omitempty"` + // ForcedMove - Indicates a forced move. + ForcedMove *bool `json:"ForcedMove,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) MarshalJSON() ([]byte, error) { + cppmse.Kind = KindChaosPartitionPrimaryMoveScheduled + objectMap := make(map[string]interface{}) + if cppmse.FaultGroupID != nil { + objectMap["FaultGroupId"] = cppmse.FaultGroupID + } + if cppmse.FaultID != nil { + objectMap["FaultId"] = cppmse.FaultID + } + if cppmse.ServiceName != nil { + objectMap["ServiceName"] = cppmse.ServiceName + } + if cppmse.NodeTo != nil { + objectMap["NodeTo"] = cppmse.NodeTo + } + if cppmse.ForcedMove != nil { + objectMap["ForcedMove"] = cppmse.ForcedMove + } + if cppmse.PartitionID != nil { + objectMap["PartitionId"] = cppmse.PartitionID + } + if cppmse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cppmse.EventInstanceID + } + if cppmse.Category != nil { + objectMap["Category"] = cppmse.Category + } + if cppmse.TimeStamp != nil { + objectMap["TimeStamp"] = cppmse.TimeStamp + } + if cppmse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cppmse.HasCorrelatedEvents + } + if cppmse.Kind != "" { + objectMap["Kind"] = cppmse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &cppmse, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return &cppmse, true +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionPrimaryMoveScheduledEvent. +func (cppmse ChaosPartitionPrimaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cppmse, true +} + +// ChaosPartitionSecondaryMoveScheduledEvent chaos Move Secondary Fault Scheduled event. +type ChaosPartitionSecondaryMoveScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceName - Service name. + ServiceName *string `json:"ServiceName,omitempty"` + // SourceNode - The name of a Service Fabric node. + SourceNode *string `json:"SourceNode,omitempty"` + // DestinationNode - The name of a Service Fabric node. + DestinationNode *string `json:"DestinationNode,omitempty"` + // ForcedMove - Indicates a forced move. + ForcedMove *bool `json:"ForcedMove,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) MarshalJSON() ([]byte, error) { + cpsmse.Kind = KindChaosPartitionSecondaryMoveScheduled + objectMap := make(map[string]interface{}) + if cpsmse.FaultGroupID != nil { + objectMap["FaultGroupId"] = cpsmse.FaultGroupID + } + if cpsmse.FaultID != nil { + objectMap["FaultId"] = cpsmse.FaultID + } + if cpsmse.ServiceName != nil { + objectMap["ServiceName"] = cpsmse.ServiceName + } + if cpsmse.SourceNode != nil { + objectMap["SourceNode"] = cpsmse.SourceNode + } + if cpsmse.DestinationNode != nil { + objectMap["DestinationNode"] = cpsmse.DestinationNode + } + if cpsmse.ForcedMove != nil { + objectMap["ForcedMove"] = cpsmse.ForcedMove + } + if cpsmse.PartitionID != nil { + objectMap["PartitionId"] = cpsmse.PartitionID + } + if cpsmse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cpsmse.EventInstanceID + } + if cpsmse.Category != nil { + objectMap["Category"] = cpsmse.Category + } + if cpsmse.TimeStamp != nil { + objectMap["TimeStamp"] = cpsmse.TimeStamp + } + if cpsmse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cpsmse.HasCorrelatedEvents + } + if cpsmse.Kind != "" { + objectMap["Kind"] = cpsmse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &cpsmse, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return &cpsmse, true +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosPartitionSecondaryMoveScheduledEvent. +func (cpsmse ChaosPartitionSecondaryMoveScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cpsmse, true +} + +// ChaosReplicaRemovalScheduledEvent chaos Remove Replica Fault Scheduled event. +type ChaosReplicaRemovalScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceURI - Service name. + ServiceURI *string `json:"ServiceUri,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) MarshalJSON() ([]byte, error) { + crrse.Kind = KindChaosReplicaRemovalScheduled + objectMap := make(map[string]interface{}) + if crrse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crrse.FaultGroupID + } + if crrse.FaultID != nil { + objectMap["FaultId"] = crrse.FaultID + } + if crrse.ServiceURI != nil { + objectMap["ServiceUri"] = crrse.ServiceURI + } + if crrse.PartitionID != nil { + objectMap["PartitionId"] = crrse.PartitionID + } + if crrse.ReplicaID != nil { + objectMap["ReplicaId"] = crrse.ReplicaID + } + if crrse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crrse.EventInstanceID + } + if crrse.Category != nil { + objectMap["Category"] = crrse.Category + } + if crrse.TimeStamp != nil { + objectMap["TimeStamp"] = crrse.TimeStamp + } + if crrse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents + } + if crrse.Kind != "" { + objectMap["Kind"] = crrse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &crrse, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return &crrse, true +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRemovalScheduledEvent. +func (crrse ChaosReplicaRemovalScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crrse, true +} + +// ChaosReplicaRestartScheduledEvent chaos Restart Replica Fault Scheduled event. +type ChaosReplicaRestartScheduledEvent struct { + // FaultGroupID - Id of fault group. + FaultGroupID *uuid.UUID `json:"FaultGroupId,omitempty"` + // FaultID - Id of fault. + FaultID *uuid.UUID `json:"FaultId,omitempty"` + // ServiceURI - Service name. + ServiceURI *string `json:"ServiceUri,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) MarshalJSON() ([]byte, error) { + crrse.Kind = KindChaosReplicaRestartScheduled + objectMap := make(map[string]interface{}) + if crrse.FaultGroupID != nil { + objectMap["FaultGroupId"] = crrse.FaultGroupID + } + if crrse.FaultID != nil { + objectMap["FaultId"] = crrse.FaultID + } + if crrse.ServiceURI != nil { + objectMap["ServiceUri"] = crrse.ServiceURI + } + if crrse.PartitionID != nil { + objectMap["PartitionId"] = crrse.PartitionID + } + if crrse.ReplicaID != nil { + objectMap["ReplicaId"] = crrse.ReplicaID + } + if crrse.EventInstanceID != nil { + objectMap["EventInstanceId"] = crrse.EventInstanceID + } + if crrse.Category != nil { + objectMap["Category"] = crrse.Category + } + if crrse.TimeStamp != nil { + objectMap["TimeStamp"] = crrse.TimeStamp + } + if crrse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = crrse.HasCorrelatedEvents + } + if crrse.Kind != "" { + objectMap["Kind"] = crrse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &crrse, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return &crrse, true +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosReplicaRestartScheduledEvent. +func (crrse ChaosReplicaRestartScheduledEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &crrse, true +} + +// ChaosSchedule defines the schedule used by Chaos. +type ChaosSchedule struct { + // StartDate - The date and time Chaos will start using this schedule. + StartDate *date.Time `json:"StartDate,omitempty"` + // ExpiryDate - The date and time Chaos will continue to use this schedule until. + ExpiryDate *date.Time `json:"ExpiryDate,omitempty"` + // ChaosParametersDictionary - A mapping of string names to Chaos Parameters to be referenced by Chaos Schedule Jobs. + ChaosParametersDictionary *[]ChaosParametersDictionaryItem `json:"ChaosParametersDictionary,omitempty"` + // Jobs - A list of all Chaos Schedule Jobs that will be automated by the schedule. + Jobs *[]ChaosScheduleJob `json:"Jobs,omitempty"` +} + +// ChaosScheduleDescription defines the Chaos Schedule used by Chaos and the version of the Chaos Schedule. +// The version value wraps back to 0 after surpassing 2,147,483,647. +type ChaosScheduleDescription struct { + autorest.Response `json:"-"` + // Version - The version number of the Schedule. + Version *int32 `json:"Version,omitempty"` + // Schedule - Defines the schedule used by Chaos. + Schedule *ChaosSchedule `json:"Schedule,omitempty"` +} + +// ChaosScheduleJob defines a repetition rule and parameters of Chaos to be used with the Chaos Schedule. +type ChaosScheduleJob struct { + // ChaosParameters - A reference to which Chaos Parameters of the Chaos Schedule to use. + ChaosParameters *string `json:"ChaosParameters,omitempty"` + // Days - Defines the days of the week that a Chaos Schedule Job will run for. + Days *ChaosScheduleJobActiveDaysOfWeek `json:"Days,omitempty"` + // Times - A list of Time Ranges that specify when during active days that this job will run. The times are interpreted as UTC. + Times *[]TimeRange `json:"Times,omitempty"` +} + +// ChaosScheduleJobActiveDaysOfWeek defines the days of the week that a Chaos Schedule Job will run for. +type ChaosScheduleJobActiveDaysOfWeek struct { + // Sunday - Indicates if the Chaos Schedule Job will run on Sunday + Sunday *bool `json:"Sunday,omitempty"` + // Monday - Indicates if the Chaos Schedule Job will run on Monday + Monday *bool `json:"Monday,omitempty"` + // Tuesday - Indicates if the Chaos Schedule Job will run on Tuesday + Tuesday *bool `json:"Tuesday,omitempty"` + // Wednesday - Indicates if the Chaos Schedule Job will run on Wednesday + Wednesday *bool `json:"Wednesday,omitempty"` + // Thursday - Indicates if the Chaos Schedule Job will run on Thursday + Thursday *bool `json:"Thursday,omitempty"` + // Friday - Indicates if the Chaos Schedule Job will run on Friday + Friday *bool `json:"Friday,omitempty"` + // Saturday - Indicates if the Chaos Schedule Job will run on Saturday + Saturday *bool `json:"Saturday,omitempty"` +} + +// ChaosStartedEvent chaos Started event. +type ChaosStartedEvent struct { + // MaxConcurrentFaults - Maximum number of concurrent faults. + MaxConcurrentFaults *int64 `json:"MaxConcurrentFaults,omitempty"` + // TimeToRunInSeconds - Time to run in seconds. + TimeToRunInSeconds *float64 `json:"TimeToRunInSeconds,omitempty"` + // MaxClusterStabilizationTimeoutInSeconds - Maximum timeout for cluster stabilization in seconds. + MaxClusterStabilizationTimeoutInSeconds *float64 `json:"MaxClusterStabilizationTimeoutInSeconds,omitempty"` + // WaitTimeBetweenIterationsInSeconds - Wait time between iterations in seconds. + WaitTimeBetweenIterationsInSeconds *float64 `json:"WaitTimeBetweenIterationsInSeconds,omitempty"` + // WaitTimeBetweenFautlsInSeconds - Wait time between faults in seconds. + WaitTimeBetweenFautlsInSeconds *float64 `json:"WaitTimeBetweenFautlsInSeconds,omitempty"` + // MoveReplicaFaultEnabled - Indicates MoveReplica fault is enabled. + MoveReplicaFaultEnabled *bool `json:"MoveReplicaFaultEnabled,omitempty"` + // IncludedNodeTypeList - List of included Node types. + IncludedNodeTypeList *string `json:"IncludedNodeTypeList,omitempty"` + // IncludedApplicationList - List of included Applications. + IncludedApplicationList *string `json:"IncludedApplicationList,omitempty"` + // ClusterHealthPolicy - Health policy. + ClusterHealthPolicy *string `json:"ClusterHealthPolicy,omitempty"` + // ChaosContext - Chaos Context. + ChaosContext *string `json:"ChaosContext,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosStartedEvent. +func (cse ChaosStartedEvent) MarshalJSON() ([]byte, error) { + cse.Kind = KindChaosStarted + objectMap := make(map[string]interface{}) + if cse.MaxConcurrentFaults != nil { + objectMap["MaxConcurrentFaults"] = cse.MaxConcurrentFaults + } + if cse.TimeToRunInSeconds != nil { + objectMap["TimeToRunInSeconds"] = cse.TimeToRunInSeconds + } + if cse.MaxClusterStabilizationTimeoutInSeconds != nil { + objectMap["MaxClusterStabilizationTimeoutInSeconds"] = cse.MaxClusterStabilizationTimeoutInSeconds + } + if cse.WaitTimeBetweenIterationsInSeconds != nil { + objectMap["WaitTimeBetweenIterationsInSeconds"] = cse.WaitTimeBetweenIterationsInSeconds + } + if cse.WaitTimeBetweenFautlsInSeconds != nil { + objectMap["WaitTimeBetweenFautlsInSeconds"] = cse.WaitTimeBetweenFautlsInSeconds + } + if cse.MoveReplicaFaultEnabled != nil { + objectMap["MoveReplicaFaultEnabled"] = cse.MoveReplicaFaultEnabled + } + if cse.IncludedNodeTypeList != nil { + objectMap["IncludedNodeTypeList"] = cse.IncludedNodeTypeList + } + if cse.IncludedApplicationList != nil { + objectMap["IncludedApplicationList"] = cse.IncludedApplicationList + } + if cse.ClusterHealthPolicy != nil { + objectMap["ClusterHealthPolicy"] = cse.ClusterHealthPolicy + } + if cse.ChaosContext != nil { + objectMap["ChaosContext"] = cse.ChaosContext + } + if cse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cse.EventInstanceID + } + if cse.Category != nil { + objectMap["Category"] = cse.Category + } + if cse.TimeStamp != nil { + objectMap["TimeStamp"] = cse.TimeStamp + } + if cse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents + } + if cse.Kind != "" { + objectMap["Kind"] = cse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return &cse, true +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStartedEvent. +func (cse ChaosStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cse, true +} + +// ChaosStoppedEvent chaos Stopped event. +type ChaosStoppedEvent struct { + // Reason - Describes reason. + Reason *string `json:"Reason,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) MarshalJSON() ([]byte, error) { + cse.Kind = KindChaosStopped + objectMap := make(map[string]interface{}) + if cse.Reason != nil { + objectMap["Reason"] = cse.Reason + } + if cse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cse.EventInstanceID + } + if cse.Category != nil { + objectMap["Category"] = cse.Category + } + if cse.TimeStamp != nil { + objectMap["TimeStamp"] = cse.TimeStamp + } + if cse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cse.HasCorrelatedEvents + } + if cse.Kind != "" { + objectMap["Kind"] = cse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return &cse, true +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ChaosStoppedEvent. +func (cse ChaosStoppedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cse, true +} + +// ChaosTargetFilter defines all filters for targeted Chaos faults, for example, faulting only certain node +// types or faulting only certain applications. +// If ChaosTargetFilter is not used, Chaos faults all cluster entities. If ChaosTargetFilter is used, Chaos +// faults only the entities that meet the ChaosTargetFilter +// specification. NodeTypeInclusionList and ApplicationInclusionList allow a union semantics only. It is +// not possible to specify an intersection +// of NodeTypeInclusionList and ApplicationInclusionList. For example, it is not possible to specify "fault +// this application only when it is on that node type." +// Once an entity is included in either NodeTypeInclusionList or ApplicationInclusionList, that entity +// cannot be excluded using ChaosTargetFilter. Even if +// applicationX does not appear in ApplicationInclusionList, in some Chaos iteration applicationX can be +// faulted because it happens to be on a node of nodeTypeY that is included +// in NodeTypeInclusionList. If both NodeTypeInclusionList and ApplicationInclusionList are null or empty, +// an ArgumentException is thrown. +type ChaosTargetFilter struct { + // NodeTypeInclusionList - A list of node types to include in Chaos faults. + // All types of faults (restart node, restart code package, remove replica, restart replica, move primary, and move secondary) are enabled for the nodes of these node types. + // If a nodetype (say NodeTypeX) does not appear in the NodeTypeInclusionList, then node level faults (like NodeRestart) will never be enabled for the nodes of + // NodeTypeX, but code package and replica faults can still be enabled for NodeTypeX if an application in the ApplicationInclusionList. + // happens to reside on a node of NodeTypeX. + // At most 100 node type names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfNodeTypesInChaosEntityFilter configuration. + NodeTypeInclusionList *[]string `json:"NodeTypeInclusionList,omitempty"` + // ApplicationInclusionList - A list of application URI's to include in Chaos faults. + // All replicas belonging to services of these applications are amenable to replica faults (restart replica, remove replica, move primary, and move secondary) by Chaos. + // Chaos may restart a code package only if the code package hosts replicas of these applications only. + // If an application does not appear in this list, it can still be faulted in some Chaos iteration if the application ends up on a node of a node type that is included in NodeTypeInclusionList. + // However, if applicationX is tied to nodeTypeY through placement constraints and applicationX is absent from ApplicationInclusionList and nodeTypeY is absent from NodeTypeInclusionList, then applicationX will never be faulted. + // At most 1000 application names can be included in this list, to increase this number, a config upgrade is required for MaxNumberOfApplicationsInChaosEntityFilter configuration. + ApplicationInclusionList *[]string `json:"ApplicationInclusionList,omitempty"` +} + +// CheckExistsPropertyBatchOperation represents a PropertyBatchOperation that compares the Boolean +// existence of a property with the Exists argument. +// The PropertyBatchOperation operation fails if the property's existence is not equal to the Exists +// argument. +// The CheckExistsPropertyBatchOperation is generally used as a precondition for the write operations in +// the batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckExistsPropertyBatchOperation struct { + // Exists - Whether or not the property should exist for the operation to pass. + Exists *bool `json:"Exists,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) MarshalJSON() ([]byte, error) { + cepbo.Kind = KindCheckExists + objectMap := make(map[string]interface{}) + if cepbo.Exists != nil { + objectMap["Exists"] = cepbo.Exists + } + if cepbo.PropertyName != nil { + objectMap["PropertyName"] = cepbo.PropertyName + } + if cepbo.Kind != "" { + objectMap["Kind"] = cepbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return &cepbo, true +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckExistsPropertyBatchOperation. +func (cepbo CheckExistsPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cepbo, true +} + +// CheckSequencePropertyBatchOperation compares the Sequence Number of a property with the SequenceNumber +// argument. +// A property's sequence number can be thought of as that property's version. +// Every time the property is modified, its sequence number is increased. +// The sequence number can be found in a property's metadata. +// The comparison fails if the sequence numbers are not equal. +// CheckSequencePropertyBatchOperation is generally used as a precondition for the write operations in the +// batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckSequencePropertyBatchOperation struct { + // SequenceNumber - The expected sequence number. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) MarshalJSON() ([]byte, error) { + cspbo.Kind = KindCheckSequence + objectMap := make(map[string]interface{}) + if cspbo.SequenceNumber != nil { + objectMap["SequenceNumber"] = cspbo.SequenceNumber + } + if cspbo.PropertyName != nil { + objectMap["PropertyName"] = cspbo.PropertyName + } + if cspbo.Kind != "" { + objectMap["Kind"] = cspbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return &cspbo, true +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckSequencePropertyBatchOperation. +func (cspbo CheckSequencePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cspbo, true +} + +// CheckValuePropertyBatchOperation represents a PropertyBatchOperation that compares the value of the +// property with the expected value. +// The CheckValuePropertyBatchOperation is generally used as a precondition for the write operations in the +// batch. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type CheckValuePropertyBatchOperation struct { + // Value - The expected property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) MarshalJSON() ([]byte, error) { + cvpbo.Kind = KindCheckValue + objectMap := make(map[string]interface{}) + objectMap["Value"] = cvpbo.Value + if cvpbo.PropertyName != nil { + objectMap["PropertyName"] = cvpbo.PropertyName + } + if cvpbo.Kind != "" { + objectMap["Kind"] = cvpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return &cvpbo, true +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for CheckValuePropertyBatchOperation. +func (cvpbo CheckValuePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &cvpbo, true +} + +// UnmarshalJSON is the custom unmarshaler for CheckValuePropertyBatchOperation struct. +func (cvpbo *CheckValuePropertyBatchOperation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + cvpbo.Value = value + } + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + cvpbo.PropertyName = &propertyName + } + case "Kind": + if v != nil { + var kind KindBasicPropertyBatchOperation + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + cvpbo.Kind = kind + } + } + } + + return nil +} + +// ClusterConfiguration information about the standalone cluster configuration. +type ClusterConfiguration struct { + autorest.Response `json:"-"` + // ClusterConfiguration - The contents of the cluster configuration file. + ClusterConfiguration *string `json:"ClusterConfiguration,omitempty"` +} + +// ClusterConfigurationUpgradeDescription describes the parameters for a standalone cluster configuration +// upgrade. +type ClusterConfigurationUpgradeDescription struct { + // ClusterConfig - The cluster configuration as a JSON string. For example, [this file](https://github.com/Azure-Samples/service-fabric-dotnet-standalone-cluster-configuration/blob/master/Samples/ClusterConfig.Unsecure.DevCluster.json) contains JSON describing the [nodes and other properties of the cluster](https://docs.microsoft.com/azure/service-fabric/service-fabric-cluster-manifest). + ClusterConfig *string `json:"ClusterConfig,omitempty"` + // HealthCheckRetryTimeout - The length of time between attempts to perform health checks if the application or cluster is not healthy. + HealthCheckRetryTimeout *string `json:"HealthCheckRetryTimeout,omitempty"` + // HealthCheckWaitDurationInSeconds - The length of time to wait after completing an upgrade domain before starting the health checks process. + HealthCheckWaitDurationInSeconds *string `json:"HealthCheckWaitDurationInSeconds,omitempty"` + // HealthCheckStableDurationInSeconds - The length of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. + HealthCheckStableDurationInSeconds *string `json:"HealthCheckStableDurationInSeconds,omitempty"` + // UpgradeDomainTimeoutInSeconds - The timeout for the upgrade domain. + UpgradeDomainTimeoutInSeconds *string `json:"UpgradeDomainTimeoutInSeconds,omitempty"` + // UpgradeTimeoutInSeconds - The upgrade timeout. + UpgradeTimeoutInSeconds *string `json:"UpgradeTimeoutInSeconds,omitempty"` + // MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of delta health degradation during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain delta health degradation during the upgrade. Allowed values are integer values from zero to 100. + MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"` + // ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"` +} + +// ClusterConfigurationUpgradeStatusInfo information about a standalone cluster configuration upgrade +// status. +type ClusterConfigurationUpgradeStatusInfo struct { + autorest.Response `json:"-"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // ProgressStatus - The cluster manifest version. + ProgressStatus *int32 `json:"ProgressStatus,omitempty"` + // ConfigVersion - The cluster configuration version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // Details - The cluster upgrade status details. + Details *string `json:"Details,omitempty"` +} + +// BasicClusterEvent represents the base for all Cluster Events. +type BasicClusterEvent interface { + AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) + AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) + AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) + AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) + AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) + AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) + AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) + AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) + AsChaosStartedEvent() (*ChaosStartedEvent, bool) + AsClusterEvent() (*ClusterEvent, bool) +} + +// ClusterEvent represents the base for all Cluster Events. +type ClusterEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicClusterEvent(body []byte) (BasicClusterEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindClusterNewHealthReport): + var cnhre ClusterNewHealthReportEvent + err := json.Unmarshal(body, &cnhre) + return cnhre, err + case string(KindClusterHealthReportExpired): + var chree ClusterHealthReportExpiredEvent + err := json.Unmarshal(body, &chree) + return chree, err + case string(KindClusterUpgradeCompleted): + var cuce ClusterUpgradeCompletedEvent + err := json.Unmarshal(body, &cuce) + return cuce, err + case string(KindClusterUpgradeDomainCompleted): + var cudce ClusterUpgradeDomainCompletedEvent + err := json.Unmarshal(body, &cudce) + return cudce, err + case string(KindClusterUpgradeRollbackCompleted): + var curce ClusterUpgradeRollbackCompletedEvent + err := json.Unmarshal(body, &curce) + return curce, err + case string(KindClusterUpgradeRollbackStarted): + var curse ClusterUpgradeRollbackStartedEvent + err := json.Unmarshal(body, &curse) + return curse, err + case string(KindClusterUpgradeStarted): + var cuse ClusterUpgradeStartedEvent + err := json.Unmarshal(body, &cuse) + return cuse, err + case string(KindChaosStopped): + var cse ChaosStoppedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosStarted): + var cse ChaosStartedEvent + err := json.Unmarshal(body, &cse) + return cse, err + default: + var ce ClusterEvent + err := json.Unmarshal(body, &ce) + return ce, err + } +} +func unmarshalBasicClusterEventArray(body []byte) ([]BasicClusterEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ceArray := make([]BasicClusterEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ce, err := unmarshalBasicClusterEvent(*rawMessage) + if err != nil { + return nil, err + } + ceArray[index] = ce + } + return ceArray, nil +} + +// MarshalJSON is the custom marshaler for ClusterEvent. +func (ce ClusterEvent) MarshalJSON() ([]byte, error) { + ce.Kind = KindClusterEvent + objectMap := make(map[string]interface{}) + if ce.EventInstanceID != nil { + objectMap["EventInstanceId"] = ce.EventInstanceID + } + if ce.Category != nil { + objectMap["Category"] = ce.Category + } + if ce.TimeStamp != nil { + objectMap["TimeStamp"] = ce.TimeStamp + } + if ce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ce.HasCorrelatedEvents + } + if ce.Kind != "" { + objectMap["Kind"] = ce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterEvent() (*ClusterEvent, bool) { + return &ce, true +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &ce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterEvent. +func (ce ClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ce, true +} + +// ClusterHealth represents the health of the cluster. +// Contains the cluster aggregated health state, the cluster application and node health states as well as +// the health events and the unhealthy evaluations. +type ClusterHealth struct { + autorest.Response `json:"-"` + // NodeHealthStates - Cluster node health states as found in the health store. + NodeHealthStates *[]NodeHealthState `json:"NodeHealthStates,omitempty"` + // ApplicationHealthStates - Cluster application health states as found in the health store. + ApplicationHealthStates *[]ApplicationHealthState `json:"ApplicationHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ClusterHealthChunk represents the health chunk of the cluster. +// Contains the cluster aggregated health state, and the cluster entities that respect the input filter. +type ClusterHealthChunk struct { + autorest.Response `json:"-"` + // HealthState - The HealthState representing the aggregated health state of the cluster computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired cluster health policy and the application health policies. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeHealthStateChunks - The list of node health state chunks in the cluster that respect the filters in the cluster health chunk query description. + NodeHealthStateChunks *NodeHealthStateChunkList `json:"NodeHealthStateChunks,omitempty"` + // ApplicationHealthStateChunks - The list of application health state chunks in the cluster that respect the filters in the cluster health chunk query description. + ApplicationHealthStateChunks *ApplicationHealthStateChunkList `json:"ApplicationHealthStateChunks,omitempty"` +} + +// ClusterHealthChunkQueryDescription the cluster health chunk query description, which can specify the +// health policies to evaluate cluster health and very expressive filters to select which cluster entities +// to include in response. +type ClusterHealthChunkQueryDescription struct { + // NodeFilters - Defines a list of filters that specify which nodes to be included in the returned cluster health chunk. + // If no filters are specified, no nodes are returned. All the nodes are used to evaluate the cluster's aggregated health state, regardless of the input filters. + // The cluster health chunk query may specify multiple node filters. + // For example, it can specify a filter to return all nodes with health state Error and another filter to always include a node identified by its NodeName. + NodeFilters *[]NodeHealthStateFilter `json:"NodeFilters,omitempty"` + // ApplicationFilters - Defines a list of filters that specify which applications to be included in the returned cluster health chunk. + // If no filters are specified, no applications are returned. All the applications are used to evaluate the cluster's aggregated health state, regardless of the input filters. + // The cluster health chunk query may specify multiple application filters. + // For example, it can specify a filter to return all applications with health state Error and another filter to always include applications of a specified application type. + ApplicationFilters *[]ApplicationHealthStateFilter `json:"ApplicationFilters,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // ApplicationHealthPolicies - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicies *ApplicationHealthPolicies `json:"ApplicationHealthPolicies,omitempty"` +} + +// ClusterHealthPolicies health policies to evaluate cluster health. +type ClusterHealthPolicies struct { + // ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications. + // Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health. + // If an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest). + // The map is empty by default. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` +} + +// ClusterHealthPolicy defines a health policy used to evaluate the health of the cluster or of a cluster +// node. +type ClusterHealthPolicy struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // MaxPercentUnhealthyNodes - The maximum allowed percentage of unhealthy nodes before reporting an error. For example, to allow 10% of nodes to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of nodes that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy node, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy nodes over the total number of nodes in the cluster. + // The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero. + // In large clusters, some nodes will always be down or out for repairs, so this percentage should be configured to tolerate that. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // MaxPercentUnhealthyApplications - The maximum allowed percentage of unhealthy applications before reporting an error. For example, to allow 10% of applications to be unhealthy, this value would be 10. + // The percentage represents the maximum tolerated percentage of applications that can be unhealthy before the cluster is considered in error. + // If the percentage is respected but there is at least one unhealthy application, the health is evaluated as Warning. + // This is calculated by dividing the number of unhealthy applications over the total number of application instances in the cluster, excluding applications of application types that are included in the ApplicationTypeHealthPolicyMap. + // The computation rounds up to tolerate one failure on small numbers of applications. Default percentage is zero. + MaxPercentUnhealthyApplications *int32 `json:"MaxPercentUnhealthyApplications,omitempty"` + // ApplicationTypeHealthPolicyMap - Defines a map with max percentage unhealthy applications for specific application types. + // Each entry specifies as key the application type name and as value an integer that represents the MaxPercentUnhealthyApplications percentage used to evaluate the applications of the specified application type. + // The application type health policy map can be used during cluster health evaluation to describe special application types. + // The application types included in the map are evaluated against the percentage specified in the map, and not with the global MaxPercentUnhealthyApplications defined in the cluster health policy. + // The applications of application types specified in the map are not counted against the global pool of applications. + // For example, if some applications of a type are critical, the cluster administrator can add an entry to the map for that application type + // and assign it a value of 0% (that is, do not tolerate any failures). + // All other applications can be evaluated with MaxPercentUnhealthyApplications set to 20% to tolerate some failures out of the thousands of application instances. + // The application type health policy map is used only if the cluster manifest enables application type health evaluation using the configuration entry for HealthManager/EnableApplicationTypeHealthEvaluation. + ApplicationTypeHealthPolicyMap *[]ApplicationTypeHealthPolicyMapItem `json:"ApplicationTypeHealthPolicyMap,omitempty"` +} + +// ClusterHealthReportExpiredEvent cluster Health Report Expired event. +type ClusterHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + chree.Kind = KindClusterHealthReportExpired + objectMap := make(map[string]interface{}) + if chree.SourceID != nil { + objectMap["SourceId"] = chree.SourceID + } + if chree.Property != nil { + objectMap["Property"] = chree.Property + } + if chree.HealthState != nil { + objectMap["HealthState"] = chree.HealthState + } + if chree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = chree.TimeToLiveMs + } + if chree.SequenceNumber != nil { + objectMap["SequenceNumber"] = chree.SequenceNumber + } + if chree.Description != nil { + objectMap["Description"] = chree.Description + } + if chree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = chree.RemoveWhenExpired + } + if chree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = chree.SourceUtcTimestamp + } + if chree.EventInstanceID != nil { + objectMap["EventInstanceId"] = chree.EventInstanceID + } + if chree.Category != nil { + objectMap["Category"] = chree.Category + } + if chree.TimeStamp != nil { + objectMap["TimeStamp"] = chree.TimeStamp + } + if chree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = chree.HasCorrelatedEvents + } + if chree.Kind != "" { + objectMap["Kind"] = chree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &chree, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return &chree, true +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterHealthReportExpiredEvent. +func (chree ClusterHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &chree, true +} + +// ClusterManifest information about the cluster manifest. +type ClusterManifest struct { + autorest.Response `json:"-"` + // Manifest - The contents of the cluster manifest file. + Manifest *string `json:"Manifest,omitempty"` +} + +// ClusterNewHealthReportEvent cluster Health Report Created event. +type ClusterNewHealthReportEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) MarshalJSON() ([]byte, error) { + cnhre.Kind = KindClusterNewHealthReport + objectMap := make(map[string]interface{}) + if cnhre.SourceID != nil { + objectMap["SourceId"] = cnhre.SourceID + } + if cnhre.Property != nil { + objectMap["Property"] = cnhre.Property + } + if cnhre.HealthState != nil { + objectMap["HealthState"] = cnhre.HealthState + } + if cnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = cnhre.TimeToLiveMs + } + if cnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = cnhre.SequenceNumber + } + if cnhre.Description != nil { + objectMap["Description"] = cnhre.Description + } + if cnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = cnhre.RemoveWhenExpired + } + if cnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = cnhre.SourceUtcTimestamp + } + if cnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = cnhre.EventInstanceID + } + if cnhre.Category != nil { + objectMap["Category"] = cnhre.Category + } + if cnhre.TimeStamp != nil { + objectMap["TimeStamp"] = cnhre.TimeStamp + } + if cnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cnhre.HasCorrelatedEvents + } + if cnhre.Kind != "" { + objectMap["Kind"] = cnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cnhre, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return &cnhre, true +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterNewHealthReportEvent. +func (cnhre ClusterNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cnhre, true +} + +// ClusterUpgradeCompletedEvent cluster Upgrade Completed event. +type ClusterUpgradeCompletedEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) MarshalJSON() ([]byte, error) { + cuce.Kind = KindClusterUpgradeCompleted + objectMap := make(map[string]interface{}) + if cuce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cuce.TargetClusterVersion + } + if cuce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = cuce.OverallUpgradeElapsedTimeInMs + } + if cuce.EventInstanceID != nil { + objectMap["EventInstanceId"] = cuce.EventInstanceID + } + if cuce.Category != nil { + objectMap["Category"] = cuce.Category + } + if cuce.TimeStamp != nil { + objectMap["TimeStamp"] = cuce.TimeStamp + } + if cuce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cuce.HasCorrelatedEvents + } + if cuce.Kind != "" { + objectMap["Kind"] = cuce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cuce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return &cuce, true +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeCompletedEvent. +func (cuce ClusterUpgradeCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cuce, true +} + +// ClusterUpgradeDescriptionObject represents a ServiceFabric cluster upgrade +type ClusterUpgradeDescriptionObject struct { + // ConfigVersion - The cluster configuration version (specified in the cluster manifest). + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // CodeVersion - The ServiceFabric code version of the cluster. + CodeVersion *string `json:"CodeVersion,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines a map that contains specific application health policies for different applications. + // Each entry specifies as key the application name and as value an ApplicationHealthPolicy used to evaluate the application health. + // If an application is not specified in the map, the application health evaluation uses the ApplicationHealthPolicy found in its application manifest or the default application health policy (if no health policy is defined in the manifest). + // The map is empty by default. + ApplicationHealthPolicyMap *[]ApplicationHealthPolicyMapItem `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// ClusterUpgradeDomainCompletedEvent cluster Upgrade Domain Completed event. +type ClusterUpgradeDomainCompletedEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // UpgradeState - State of upgrade. + UpgradeState *string `json:"UpgradeState,omitempty"` + // UpgradeDomains - Upgrade domains. + UpgradeDomains *string `json:"UpgradeDomains,omitempty"` + // UpgradeDomainElapsedTimeInMs - Duration of domain upgrade in milli-seconds. + UpgradeDomainElapsedTimeInMs *float64 `json:"UpgradeDomainElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) MarshalJSON() ([]byte, error) { + cudce.Kind = KindClusterUpgradeDomainCompleted + objectMap := make(map[string]interface{}) + if cudce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cudce.TargetClusterVersion + } + if cudce.UpgradeState != nil { + objectMap["UpgradeState"] = cudce.UpgradeState + } + if cudce.UpgradeDomains != nil { + objectMap["UpgradeDomains"] = cudce.UpgradeDomains + } + if cudce.UpgradeDomainElapsedTimeInMs != nil { + objectMap["UpgradeDomainElapsedTimeInMs"] = cudce.UpgradeDomainElapsedTimeInMs + } + if cudce.EventInstanceID != nil { + objectMap["EventInstanceId"] = cudce.EventInstanceID + } + if cudce.Category != nil { + objectMap["Category"] = cudce.Category + } + if cudce.TimeStamp != nil { + objectMap["TimeStamp"] = cudce.TimeStamp + } + if cudce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cudce.HasCorrelatedEvents + } + if cudce.Kind != "" { + objectMap["Kind"] = cudce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cudce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return &cudce, true +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeDomainCompletedEvent. +func (cudce ClusterUpgradeDomainCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cudce, true +} + +// ClusterUpgradeHealthPolicyObject defines a health policy used to evaluate the health of the cluster +// during a cluster upgrade. +type ClusterUpgradeHealthPolicyObject struct { + // MaxPercentDeltaUnhealthyNodes - The maximum allowed percentage of nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the nodes at the beginning of upgrade and the state of the nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion to make sure the global state of the cluster is within tolerated limits. The default value is 10%. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // MaxPercentUpgradeDomainDeltaUnhealthyNodes - The maximum allowed percentage of upgrade domain nodes health degradation allowed during cluster upgrades. The delta is measured between the state of the upgrade domain nodes at the beginning of upgrade and the state of the upgrade domain nodes at the time of the health evaluation. The check is performed after every upgrade domain upgrade completion for all completed upgrade domains to make sure the state of the upgrade domains is within tolerated limits. The default value is 15%. + MaxPercentUpgradeDomainDeltaUnhealthyNodes *int32 `json:"MaxPercentUpgradeDomainDeltaUnhealthyNodes,omitempty"` +} + +// ClusterUpgradeProgressObject information about a cluster upgrade. +type ClusterUpgradeProgressObject struct { + autorest.Response `json:"-"` + // CodeVersion - The ServiceFabric code version of the cluster. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster configuration version (specified in the cluster manifest). + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // UpgradeDomains - List of upgrade domains and their statuses. + UpgradeDomains *[]UpgradeDomainInfo `json:"UpgradeDomains,omitempty"` + // UpgradeState - The state of the upgrade domain. Possible values include: 'UpgradeStateInvalid', 'UpgradeStateRollingBackInProgress', 'UpgradeStateRollingBackCompleted', 'UpgradeStateRollingForwardPending', 'UpgradeStateRollingForwardInProgress', 'UpgradeStateRollingForwardCompleted', 'UpgradeStateFailed' + UpgradeState UpgradeState `json:"UpgradeState,omitempty"` + // NextUpgradeDomain - The name of the next upgrade domain to be processed. + NextUpgradeDomain *string `json:"NextUpgradeDomain,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeDescription - Represents a ServiceFabric cluster upgrade + UpgradeDescription *ClusterUpgradeDescriptionObject `json:"UpgradeDescription,omitempty"` + // UpgradeDurationInMilliseconds - The estimated elapsed time spent processing the current overall upgrade. + UpgradeDurationInMilliseconds *string `json:"UpgradeDurationInMilliseconds,omitempty"` + // UpgradeDomainDurationInMilliseconds - The estimated elapsed time spent processing the current upgrade domain. + UpgradeDomainDurationInMilliseconds *string `json:"UpgradeDomainDurationInMilliseconds,omitempty"` + // UnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The start time of the upgrade in UTC. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The failure time of the upgrade in UTC. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - The detailed upgrade progress for nodes in the current upgrade domain at the point of failure. + UpgradeDomainProgressAtFailure *FailedUpgradeDomainProgressObject `json:"UpgradeDomainProgressAtFailure,omitempty"` +} + +// ClusterUpgradeRollbackCompletedEvent cluster Upgrade Rollback Completed event. +type ClusterUpgradeRollbackCompletedEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // FailureReason - Describes failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) MarshalJSON() ([]byte, error) { + curce.Kind = KindClusterUpgradeRollbackCompleted + objectMap := make(map[string]interface{}) + if curce.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = curce.TargetClusterVersion + } + if curce.FailureReason != nil { + objectMap["FailureReason"] = curce.FailureReason + } + if curce.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = curce.OverallUpgradeElapsedTimeInMs + } + if curce.EventInstanceID != nil { + objectMap["EventInstanceId"] = curce.EventInstanceID + } + if curce.Category != nil { + objectMap["Category"] = curce.Category + } + if curce.TimeStamp != nil { + objectMap["TimeStamp"] = curce.TimeStamp + } + if curce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = curce.HasCorrelatedEvents + } + if curce.Kind != "" { + objectMap["Kind"] = curce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &curce, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return &curce, true +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackCompletedEvent. +func (curce ClusterUpgradeRollbackCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &curce, true +} + +// ClusterUpgradeRollbackStartedEvent cluster Upgrade Rollback Started event. +type ClusterUpgradeRollbackStartedEvent struct { + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // FailureReason - Describes failure. + FailureReason *string `json:"FailureReason,omitempty"` + // OverallUpgradeElapsedTimeInMs - Overall duration of upgrade in milli-seconds. + OverallUpgradeElapsedTimeInMs *float64 `json:"OverallUpgradeElapsedTimeInMs,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) MarshalJSON() ([]byte, error) { + curse.Kind = KindClusterUpgradeRollbackStarted + objectMap := make(map[string]interface{}) + if curse.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = curse.TargetClusterVersion + } + if curse.FailureReason != nil { + objectMap["FailureReason"] = curse.FailureReason + } + if curse.OverallUpgradeElapsedTimeInMs != nil { + objectMap["OverallUpgradeElapsedTimeInMs"] = curse.OverallUpgradeElapsedTimeInMs + } + if curse.EventInstanceID != nil { + objectMap["EventInstanceId"] = curse.EventInstanceID + } + if curse.Category != nil { + objectMap["Category"] = curse.Category + } + if curse.TimeStamp != nil { + objectMap["TimeStamp"] = curse.TimeStamp + } + if curse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = curse.HasCorrelatedEvents + } + if curse.Kind != "" { + objectMap["Kind"] = curse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &curse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return &curse, true +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeRollbackStartedEvent. +func (curse ClusterUpgradeRollbackStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &curse, true +} + +// ClusterUpgradeStartedEvent cluster Upgrade Started event. +type ClusterUpgradeStartedEvent struct { + // CurrentClusterVersion - Current Cluster version. + CurrentClusterVersion *string `json:"CurrentClusterVersion,omitempty"` + // TargetClusterVersion - Target Cluster version. + TargetClusterVersion *string `json:"TargetClusterVersion,omitempty"` + // UpgradeType - Type of upgrade. + UpgradeType *string `json:"UpgradeType,omitempty"` + // RollingUpgradeMode - Mode of upgrade. + RollingUpgradeMode *string `json:"RollingUpgradeMode,omitempty"` + // FailureAction - Action if failed. + FailureAction *string `json:"FailureAction,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) MarshalJSON() ([]byte, error) { + cuse.Kind = KindClusterUpgradeStarted + objectMap := make(map[string]interface{}) + if cuse.CurrentClusterVersion != nil { + objectMap["CurrentClusterVersion"] = cuse.CurrentClusterVersion + } + if cuse.TargetClusterVersion != nil { + objectMap["TargetClusterVersion"] = cuse.TargetClusterVersion + } + if cuse.UpgradeType != nil { + objectMap["UpgradeType"] = cuse.UpgradeType + } + if cuse.RollingUpgradeMode != nil { + objectMap["RollingUpgradeMode"] = cuse.RollingUpgradeMode + } + if cuse.FailureAction != nil { + objectMap["FailureAction"] = cuse.FailureAction + } + if cuse.EventInstanceID != nil { + objectMap["EventInstanceId"] = cuse.EventInstanceID + } + if cuse.Category != nil { + objectMap["Category"] = cuse.Category + } + if cuse.TimeStamp != nil { + objectMap["TimeStamp"] = cuse.TimeStamp + } + if cuse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cuse.HasCorrelatedEvents + } + if cuse.Kind != "" { + objectMap["Kind"] = cuse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return &cuse, true +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return &cuse, true +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ClusterUpgradeStartedEvent. +func (cuse ClusterUpgradeStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cuse, true +} + +// ClusterVersion the cluster version. +type ClusterVersion struct { + autorest.Response `json:"-"` + // Version - The Service Fabric cluster runtime version. + Version *string `json:"Version,omitempty"` +} + +// CodePackageEntryPoint information about setup or main entry point of a code package deployed on a +// Service Fabric node. +type CodePackageEntryPoint struct { + // EntryPointLocation - The location of entry point executable on the node. + EntryPointLocation *string `json:"EntryPointLocation,omitempty"` + // ProcessID - The process ID of the entry point. + ProcessID *string `json:"ProcessId,omitempty"` + // RunAsUserName - The user name under which entry point executable is run on the node. + RunAsUserName *string `json:"RunAsUserName,omitempty"` + // CodePackageEntryPointStatistics - Statistics about setup or main entry point of a code package deployed on a Service Fabric node. + CodePackageEntryPointStatistics *CodePackageEntryPointStatistics `json:"CodePackageEntryPointStatistics,omitempty"` + // Status - Specifies the status of the code package entry point deployed on a Service Fabric node. Possible values include: 'EntryPointStatusInvalid', 'EntryPointStatusPending', 'EntryPointStatusStarting', 'EntryPointStatusStarted', 'EntryPointStatusStopping', 'EntryPointStatusStopped' + Status EntryPointStatus `json:"Status,omitempty"` + // NextActivationTime - The time (in UTC) when the entry point executable will be run next. + NextActivationTime *date.Time `json:"NextActivationTime,omitempty"` + // InstanceID - The instance ID for current running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. Each time entry point executable is run, its instance id will change. + InstanceID *string `json:"InstanceId,omitempty"` +} + +// CodePackageEntryPointStatistics statistics about setup or main entry point of a code package deployed +// on a Service Fabric node. +type CodePackageEntryPointStatistics struct { + // LastExitCode - The last exit code of the entry point. + LastExitCode *string `json:"LastExitCode,omitempty"` + // LastActivationTime - The last time (in UTC) when Service Fabric attempted to run the entry point. + LastActivationTime *date.Time `json:"LastActivationTime,omitempty"` + // LastExitTime - The last time (in UTC) when the entry point finished running. + LastExitTime *date.Time `json:"LastExitTime,omitempty"` + // LastSuccessfulActivationTime - The last time (in UTC) when the entry point ran successfully. + LastSuccessfulActivationTime *date.Time `json:"LastSuccessfulActivationTime,omitempty"` + // LastSuccessfulExitTime - The last time (in UTC) when the entry point finished running gracefully. + LastSuccessfulExitTime *date.Time `json:"LastSuccessfulExitTime,omitempty"` + // ActivationCount - Number of times the entry point has run. + ActivationCount *string `json:"ActivationCount,omitempty"` + // ActivationFailureCount - Number of times the entry point failed to run. + ActivationFailureCount *string `json:"ActivationFailureCount,omitempty"` + // ContinuousActivationFailureCount - Number of times the entry point continuously failed to run. + ContinuousActivationFailureCount *string `json:"ContinuousActivationFailureCount,omitempty"` + // ExitCount - Number of times the entry point finished running. + ExitCount *string `json:"ExitCount,omitempty"` + // ExitFailureCount - Number of times the entry point failed to exit gracefully. + ExitFailureCount *string `json:"ExitFailureCount,omitempty"` + // ContinuousExitFailureCount - Number of times the entry point continuously failed to exit gracefully. + ContinuousExitFailureCount *string `json:"ContinuousExitFailureCount,omitempty"` +} + +// ComposeDeploymentStatusInfo information about a Service Fabric compose deployment. +type ComposeDeploymentStatusInfo struct { + autorest.Response `json:"-"` + // Name - The name of the deployment. + Name *string `json:"Name,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // Status - The status of the compose deployment. Possible values include: 'ComposeDeploymentStatusInvalid', 'ComposeDeploymentStatusProvisioning', 'ComposeDeploymentStatusCreating', 'ComposeDeploymentStatusReady', 'ComposeDeploymentStatusUnprovisioning', 'ComposeDeploymentStatusDeleting', 'ComposeDeploymentStatusFailed', 'ComposeDeploymentStatusUpgrading' + Status ComposeDeploymentStatus `json:"Status,omitempty"` + // StatusDetails - The status details of compose deployment including failure message. + StatusDetails *string `json:"StatusDetails,omitempty"` +} + +// ComposeDeploymentUpgradeDescription describes the parameters for a compose deployment upgrade. +type ComposeDeploymentUpgradeDescription struct { + // DeploymentName - The name of the deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ComposeFileContent - The content of the compose file that describes the deployment to create. + ComposeFileContent *string `json:"ComposeFileContent,omitempty"` + // RegistryCredential - Credential information to connect to container registry. + RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` +} + +// ComposeDeploymentUpgradeProgressInfo describes the parameters for a compose deployment upgrade. +type ComposeDeploymentUpgradeProgressInfo struct { + autorest.Response `json:"-"` + // DeploymentName - The name of the target deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ApplicationName - The name of the target application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UpgradeState - The state of the compose deployment upgrade. Possible values include: 'ComposeDeploymentUpgradeStateInvalid', 'ComposeDeploymentUpgradeStateProvisioningTarget', 'ComposeDeploymentUpgradeStateRollingForwardInProgress', 'ComposeDeploymentUpgradeStateRollingForwardPending', 'ComposeDeploymentUpgradeStateUnprovisioningCurrent', 'ComposeDeploymentUpgradeStateRollingForwardCompleted', 'ComposeDeploymentUpgradeStateRollingBackInProgress', 'ComposeDeploymentUpgradeStateUnprovisioningTarget', 'ComposeDeploymentUpgradeStateRollingBackCompleted', 'ComposeDeploymentUpgradeStateFailed' + UpgradeState ComposeDeploymentUpgradeState `json:"UpgradeState,omitempty"` + // UpgradeStatusDetails - Additional detailed information about the status of the pending upgrade. + UpgradeStatusDetails *string `json:"UpgradeStatusDetails,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ApplicationHealthPolicy - Defines a health policy used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicy *ApplicationHealthPolicy `json:"ApplicationHealthPolicy,omitempty"` + // TargetApplicationTypeVersion - The target application type version (found in the application manifest) for the application upgrade. + TargetApplicationTypeVersion *string `json:"TargetApplicationTypeVersion,omitempty"` + // UpgradeDuration - The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDuration *string `json:"UpgradeDuration,omitempty"` + // CurrentUpgradeDomainDuration - The estimated amount of time spent processing current Upgrade Domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + CurrentUpgradeDomainDuration *string `json:"CurrentUpgradeDomainDuration,omitempty"` + // ApplicationUnhealthyEvaluations - List of health evaluations that resulted in the current aggregated health state. + ApplicationUnhealthyEvaluations *[]HealthEvaluationWrapper `json:"ApplicationUnhealthyEvaluations,omitempty"` + // CurrentUpgradeDomainProgress - Information about the current in-progress upgrade domain. + CurrentUpgradeDomainProgress *CurrentUpgradeDomainProgressInfo `json:"CurrentUpgradeDomainProgress,omitempty"` + // StartTimestampUtc - The estimated UTC datetime when the upgrade started. + StartTimestampUtc *string `json:"StartTimestampUtc,omitempty"` + // FailureTimestampUtc - The estimated UTC datetime when the upgrade failed and FailureAction was executed. + FailureTimestampUtc *string `json:"FailureTimestampUtc,omitempty"` + // FailureReason - The cause of an upgrade failure that resulted in FailureAction being executed. Possible values include: 'None', 'Interrupted', 'HealthCheck', 'UpgradeDomainTimeout', 'OverallUpgradeTimeout' + FailureReason FailureReason `json:"FailureReason,omitempty"` + // UpgradeDomainProgressAtFailure - Information about the upgrade domain progress at the time of upgrade failure. + UpgradeDomainProgressAtFailure *FailureUpgradeDomainProgressInfo `json:"UpgradeDomainProgressAtFailure,omitempty"` + // ApplicationUpgradeStatusDetails - Additional details of application upgrade including failure message. + ApplicationUpgradeStatusDetails *string `json:"ApplicationUpgradeStatusDetails,omitempty"` +} + +// ContainerAPIRequestBody parameters for making container API call. +type ContainerAPIRequestBody struct { + // HTTPVerb - HTTP verb of container REST API, defaults to "GET" + HTTPVerb *string `json:"HttpVerb,omitempty"` + // URIPath - URI path of container REST API + URIPath *string `json:"UriPath,omitempty"` + // ContentType - Content type of container REST API request, defaults to "application/json" + ContentType *string `json:"Content-Type,omitempty"` + // Body - HTTP request body of container REST API + Body *string `json:"Body,omitempty"` +} + +// ContainerAPIResponse response body that wraps container API result. +type ContainerAPIResponse struct { + autorest.Response `json:"-"` + // ContainerAPIResult - Container API result. + ContainerAPIResult *ContainerAPIResult `json:"ContainerApiResult,omitempty"` +} + +// ContainerAPIResult container API result. +type ContainerAPIResult struct { + // Status - HTTP status code returned by the target container API + Status *int32 `json:"Status,omitempty"` + // ContentType - HTTP content type + ContentType *string `json:"Content-Type,omitempty"` + // ContentEncoding - HTTP content encoding + ContentEncoding *string `json:"Content-Encoding,omitempty"` + // Body - container API result body + Body *string `json:"Body,omitempty"` +} + +// ContainerCodePackageProperties describes a container and its runtime properties. +type ContainerCodePackageProperties struct { + // Name - The name of the code package. + Name *string `json:"name,omitempty"` + // Image - The Container image to use. + Image *string `json:"image,omitempty"` + // ImageRegistryCredential - Image registry credential. + ImageRegistryCredential *ImageRegistryCredential `json:"imageRegistryCredential,omitempty"` + // Entrypoint - Override for the default entry point in the container. + Entrypoint *string `json:"entrypoint,omitempty"` + // Commands - Command array to execute within the container in exec form. + Commands *[]string `json:"commands,omitempty"` + // EnvironmentVariables - The environment variables to set in this container + EnvironmentVariables *[]EnvironmentVariable `json:"environmentVariables,omitempty"` + // Settings - The settings to set in this container. The setting file path can be fetched from environment variable "Fabric_SettingPath". The path for Windows container is "C:\\secrets". The path for Linux container is "/var/secrets". + Settings *[]Setting `json:"settings,omitempty"` + // Labels - The labels to set in this container. + Labels *[]ContainerLabel `json:"labels,omitempty"` + // Endpoints - The endpoints exposed by this container. + Endpoints *[]EndpointProperties `json:"endpoints,omitempty"` + // Resources - The resources required by this container. + Resources *ResourceRequirements `json:"resources,omitempty"` + // VolumeRefs - Volumes to be attached to the container. The lifetime of these volumes is independent of the application's lifetime. + VolumeRefs *[]VolumeReference `json:"volumeRefs,omitempty"` + // Volumes - Volumes to be attached to the container. The lifetime of these volumes is scoped to the application's lifetime. + Volumes *[]ApplicationScopedVolume `json:"volumes,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` + // ReliableCollectionsRefs - A list of ReliableCollection resources used by this particular code package. Please refer to ReliablecollectionsRef for more details. + ReliableCollectionsRefs *[]ReliableCollectionsRef `json:"reliableCollectionsRefs,omitempty"` + // InstanceView - Runtime information of a container instance. + InstanceView *ContainerInstanceView `json:"instanceView,omitempty"` +} + +// ContainerEvent a container event. +type ContainerEvent struct { + // Name - The name of the container event. + Name *string `json:"name,omitempty"` + // Count - The count of the event. + Count *int32 `json:"count,omitempty"` + // FirstTimestamp - Date/time of the first event. + FirstTimestamp *string `json:"firstTimestamp,omitempty"` + // LastTimestamp - Date/time of the last event. + LastTimestamp *string `json:"lastTimestamp,omitempty"` + // Message - The event message + Message *string `json:"message,omitempty"` + // Type - The event type. + Type *string `json:"type,omitempty"` +} + +// ContainerInstanceEvent represents the base for all Container Events. +type ContainerInstanceEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) MarshalJSON() ([]byte, error) { + cie.Kind = KindContainerInstanceEvent + objectMap := make(map[string]interface{}) + if cie.EventInstanceID != nil { + objectMap["EventInstanceId"] = cie.EventInstanceID + } + if cie.Category != nil { + objectMap["Category"] = cie.Category + } + if cie.TimeStamp != nil { + objectMap["TimeStamp"] = cie.TimeStamp + } + if cie.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = cie.HasCorrelatedEvents + } + if cie.Kind != "" { + objectMap["Kind"] = cie.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return &cie, true +} + +// AsNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ContainerInstanceEvent. +func (cie ContainerInstanceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &cie, true +} + +// ContainerInstanceView runtime information of a container instance. +type ContainerInstanceView struct { + // RestartCount - The number of times the container has been restarted. + RestartCount *int32 `json:"restartCount,omitempty"` + // CurrentState - Current container instance state. + CurrentState *ContainerState `json:"currentState,omitempty"` + // PreviousState - Previous container instance state. + PreviousState *ContainerState `json:"previousState,omitempty"` + // Events - The events of this container instance. + Events *[]ContainerEvent `json:"events,omitempty"` +} + +// ContainerLabel describes a container label. +type ContainerLabel struct { + // Name - The name of the container label. + Name *string `json:"name,omitempty"` + // Value - The value of the container label. + Value *string `json:"value,omitempty"` +} + +// ContainerLogs container logs. +type ContainerLogs struct { + autorest.Response `json:"-"` + // Content - Container logs. + Content *string `json:"Content,omitempty"` +} + +// ContainerState the container state. +type ContainerState struct { + // State - The state of this container + State *string `json:"state,omitempty"` + // StartTime - Date/time when the container state started. + StartTime *date.Time `json:"startTime,omitempty"` + // ExitCode - The container exit code. + ExitCode *string `json:"exitCode,omitempty"` + // FinishTime - Date/time when the container state finished. + FinishTime *date.Time `json:"finishTime,omitempty"` + // DetailStatus - Human-readable status of this state. + DetailStatus *string `json:"detailStatus,omitempty"` +} + +// CreateComposeDeploymentDescription defines description for creating a Service Fabric compose deployment. +type CreateComposeDeploymentDescription struct { + // DeploymentName - The name of the deployment. + DeploymentName *string `json:"DeploymentName,omitempty"` + // ComposeFileContent - The content of the compose file that describes the deployment to create. + ComposeFileContent *string `json:"ComposeFileContent,omitempty"` + // RegistryCredential - Credential information to connect to container registry. + RegistryCredential *RegistryCredential `json:"RegistryCredential,omitempty"` +} + +// CurrentUpgradeDomainProgressInfo information about the current in-progress upgrade domain. +type CurrentUpgradeDomainProgressInfo struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// DeactivationIntentDescription describes the intent or reason for deactivating the node. +type DeactivationIntentDescription struct { + // DeactivationIntent - Describes the intent or reason for deactivating the node. The possible values are following. Possible values include: 'Pause', 'Restart', 'RemoveData' + DeactivationIntent DeactivationIntent `json:"DeactivationIntent,omitempty"` +} + +// DeletePropertyBatchOperation represents a PropertyBatchOperation that deletes a specified property if it +// exists. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type DeletePropertyBatchOperation struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) MarshalJSON() ([]byte, error) { + dpbo.Kind = KindDelete + objectMap := make(map[string]interface{}) + if dpbo.PropertyName != nil { + objectMap["PropertyName"] = dpbo.PropertyName + } + if dpbo.Kind != "" { + objectMap["Kind"] = dpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return &dpbo, true +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for DeletePropertyBatchOperation. +func (dpbo DeletePropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &dpbo, true +} + +// DeltaNodesCheckHealthEvaluation represents health evaluation for delta nodes, containing health +// evaluations for each unhealthy node that impacted current aggregated health state. +// Can be returned during cluster upgrade when the aggregated health state of the cluster is Warning or +// Error. +type DeltaNodesCheckHealthEvaluation struct { + // BaselineErrorCount - Number of nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade. + BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"` + // BaselineTotalCount - Total number of nodes in the health store at the beginning of the cluster upgrade. + BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"` + // MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of delta unhealthy nodes from the ClusterUpgradeHealthPolicy. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. + // Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) { + dnche.Kind = KindDeltaNodesCheck + objectMap := make(map[string]interface{}) + if dnche.BaselineErrorCount != nil { + objectMap["BaselineErrorCount"] = dnche.BaselineErrorCount + } + if dnche.BaselineTotalCount != nil { + objectMap["BaselineTotalCount"] = dnche.BaselineTotalCount + } + if dnche.MaxPercentDeltaUnhealthyNodes != nil { + objectMap["MaxPercentDeltaUnhealthyNodes"] = dnche.MaxPercentDeltaUnhealthyNodes + } + if dnche.TotalCount != nil { + objectMap["TotalCount"] = dnche.TotalCount + } + if dnche.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dnche.UnhealthyEvaluations + } + if dnche.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dnche.AggregatedHealthState + } + if dnche.Description != nil { + objectMap["Description"] = dnche.Description + } + if dnche.Kind != "" { + objectMap["Kind"] = dnche.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return &dnche, true +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeltaNodesCheckHealthEvaluation. +func (dnche DeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dnche, true +} + +// DeployedApplicationHealth information about the health of an application deployed on a Service Fabric +// node. +type DeployedApplicationHealth struct { + autorest.Response `json:"-"` + // Name - Name of the application deployed on the node whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // NodeName - Name of the node where this application is deployed. + NodeName *string `json:"NodeName,omitempty"` + // DeployedServicePackageHealthStates - Deployed service package health states for the current deployed application as found in the health store. + DeployedServicePackageHealthStates *[]DeployedServicePackageHealthState `json:"DeployedServicePackageHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// DeployedApplicationHealthEvaluation represents health evaluation for a deployed application, containing +// information about the data and the algorithm used by the health store to evaluate health. +type DeployedApplicationHealthEvaluation struct { + // NodeName - Name of the node where the application is deployed to. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the deployed application. + // The types of the unhealthy evaluations can be DeployedServicePackagesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + dahe.Kind = KindDeployedApplication + objectMap := make(map[string]interface{}) + if dahe.NodeName != nil { + objectMap["NodeName"] = dahe.NodeName + } + if dahe.ApplicationName != nil { + objectMap["ApplicationName"] = dahe.ApplicationName + } + if dahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations + } + if dahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState + } + if dahe.Description != nil { + objectMap["Description"] = dahe.Description + } + if dahe.Kind != "" { + objectMap["Kind"] = dahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return &dahe, true +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationHealthEvaluation. +func (dahe DeployedApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dahe, true +} + +// DeployedApplicationHealthReportExpiredEvent deployed Application Health Report Expired event. +type DeployedApplicationHealthReportExpiredEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + dahree.Kind = KindDeployedApplicationHealthReportExpired + objectMap := make(map[string]interface{}) + if dahree.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = dahree.ApplicationInstanceID + } + if dahree.NodeName != nil { + objectMap["NodeName"] = dahree.NodeName + } + if dahree.SourceID != nil { + objectMap["SourceId"] = dahree.SourceID + } + if dahree.Property != nil { + objectMap["Property"] = dahree.Property + } + if dahree.HealthState != nil { + objectMap["HealthState"] = dahree.HealthState + } + if dahree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = dahree.TimeToLiveMs + } + if dahree.SequenceNumber != nil { + objectMap["SequenceNumber"] = dahree.SequenceNumber + } + if dahree.Description != nil { + objectMap["Description"] = dahree.Description + } + if dahree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dahree.RemoveWhenExpired + } + if dahree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dahree.SourceUtcTimestamp + } + if dahree.ApplicationID != nil { + objectMap["ApplicationId"] = dahree.ApplicationID + } + if dahree.EventInstanceID != nil { + objectMap["EventInstanceId"] = dahree.EventInstanceID + } + if dahree.Category != nil { + objectMap["Category"] = dahree.Category + } + if dahree.TimeStamp != nil { + objectMap["TimeStamp"] = dahree.TimeStamp + } + if dahree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dahree.HasCorrelatedEvents + } + if dahree.Kind != "" { + objectMap["Kind"] = dahree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dahree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return &dahree, true +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationHealthReportExpiredEvent. +func (dahree DeployedApplicationHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dahree, true +} + +// DeployedApplicationHealthState represents the health state of a deployed application, which contains the +// entity identifier and the aggregated health state. +type DeployedApplicationHealthState struct { + // NodeName - Name of the node on which the service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// DeployedApplicationHealthStateChunk represents the health state chunk of a deployed application, which +// contains the node where the application is deployed, the aggregated health state and any deployed +// service packages that respect the chunk query description filters. +type DeployedApplicationHealthStateChunk struct { + // NodeName - The name of node where the application is deployed. + NodeName *string `json:"NodeName,omitempty"` + // DeployedServicePackageHealthStateChunks - The list of deployed service package health state chunks belonging to the deployed application that respect the filters in the cluster health chunk query description. + DeployedServicePackageHealthStateChunks *DeployedServicePackageHealthStateChunkList `json:"DeployedServicePackageHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedApplicationHealthStateChunkList the list of deployed application health state chunks that +// respect the input filters in the chunk query. Returned by get cluster health state chunks query. +type DeployedApplicationHealthStateChunkList struct { + // Items - The list of deployed application health state chunks that respect the input filters in the chunk query. + Items *[]DeployedApplicationHealthStateChunk `json:"Items,omitempty"` +} + +// DeployedApplicationHealthStateFilter defines matching criteria to determine whether a deployed +// application should be included as a child of an application in the cluster health chunk. +// The deployed applications are only returned if the parent application matches a filter specified in the +// cluster health chunk query description. +// One filter can match zero, one or multiple deployed applications, depending on its properties. +type DeployedApplicationHealthStateFilter struct { + // NodeNameFilter - The name of the node where the application is deployed in order to match the filter. + // If specified, the filter is applied only to the application deployed on the specified node. + // If the application is not deployed on the node with the specified name, no deployed application is returned in the cluster health chunk based on this filter. + // Otherwise, the deployed application is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all deployed applications that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + NodeNameFilter *string `json:"NodeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the deployed applications. It allows selecting deployed applications if they match the desired health states. + // The possible values are integer value of one of the following health states. Only deployed applications that match the filter are returned. All deployed applications are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching deployed application is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches deployed applications with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // DeployedServicePackageFilters - Defines a list of filters that specify which deployed service packages to be included in the returned cluster health chunk as children of the parent deployed application. The deployed service packages are returned only if the parent deployed application matches a filter. + // If the list is empty, no deployed service packages are returned. All the deployed service packages are used to evaluate the parent deployed application aggregated health state, regardless of the input filters. + // The deployed application filter may specify multiple deployed service package filters. + // For example, it can specify a filter to return all deployed service packages with health state Error and another filter to always include a deployed service package on a node. + DeployedServicePackageFilters *[]DeployedServicePackageHealthStateFilter `json:"DeployedServicePackageFilters,omitempty"` +} + +// DeployedApplicationInfo information about application deployed on the node. +type DeployedApplicationInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The name of the application, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - The application type name as defined in the application manifest. + TypeName *string `json:"TypeName,omitempty"` + // Status - The status of the application deployed on the node. Following are the possible values. Possible values include: 'DeployedApplicationStatusInvalid', 'DeployedApplicationStatusDownloading', 'DeployedApplicationStatusActivating', 'DeployedApplicationStatusActive', 'DeployedApplicationStatusUpgrading', 'DeployedApplicationStatusDeactivating' + Status DeployedApplicationStatus `json:"Status,omitempty"` + // WorkDirectory - The work directory of the application on the node. The work directory can be used to store application data. + WorkDirectory *string `json:"WorkDirectory,omitempty"` + // LogDirectory - The log directory of the application on the node. The log directory can be used to store application logs. + LogDirectory *string `json:"LogDirectory,omitempty"` + // TempDirectory - The temp directory of the application on the node. The code packages belonging to the application are forked with this directory set as their temporary directory. + TempDirectory *string `json:"TempDirectory,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedApplicationNewHealthReportEvent deployed Application Health Report Created event. +type DeployedApplicationNewHealthReportEvent struct { + // ApplicationInstanceID - Id of Application instance. + ApplicationInstanceID *int64 `json:"ApplicationInstanceId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) MarshalJSON() ([]byte, error) { + danhre.Kind = KindDeployedApplicationNewHealthReport + objectMap := make(map[string]interface{}) + if danhre.ApplicationInstanceID != nil { + objectMap["ApplicationInstanceId"] = danhre.ApplicationInstanceID + } + if danhre.NodeName != nil { + objectMap["NodeName"] = danhre.NodeName + } + if danhre.SourceID != nil { + objectMap["SourceId"] = danhre.SourceID + } + if danhre.Property != nil { + objectMap["Property"] = danhre.Property + } + if danhre.HealthState != nil { + objectMap["HealthState"] = danhre.HealthState + } + if danhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = danhre.TimeToLiveMs + } + if danhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = danhre.SequenceNumber + } + if danhre.Description != nil { + objectMap["Description"] = danhre.Description + } + if danhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = danhre.RemoveWhenExpired + } + if danhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = danhre.SourceUtcTimestamp + } + if danhre.ApplicationID != nil { + objectMap["ApplicationId"] = danhre.ApplicationID + } + if danhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = danhre.EventInstanceID + } + if danhre.Category != nil { + objectMap["Category"] = danhre.Category + } + if danhre.TimeStamp != nil { + objectMap["TimeStamp"] = danhre.TimeStamp + } + if danhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = danhre.HasCorrelatedEvents + } + if danhre.Kind != "" { + objectMap["Kind"] = danhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &danhre, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return &danhre, true +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedApplicationNewHealthReportEvent. +func (danhre DeployedApplicationNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &danhre, true +} + +// DeployedApplicationsHealthEvaluation represents health evaluation for deployed applications, containing +// health evaluations for each unhealthy deployed application that impacted current aggregated health +// state. +// Can be returned when evaluating application health and the aggregated health state is either Error or +// Warning. +type DeployedApplicationsHealthEvaluation struct { + // MaxPercentUnhealthyDeployedApplications - Maximum allowed percentage of unhealthy deployed applications from the ApplicationHealthPolicy. + MaxPercentUnhealthyDeployedApplications *int32 `json:"MaxPercentUnhealthyDeployedApplications,omitempty"` + // TotalCount - Total number of deployed applications of the application in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedApplicationHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) MarshalJSON() ([]byte, error) { + dahe.Kind = KindDeployedApplications + objectMap := make(map[string]interface{}) + if dahe.MaxPercentUnhealthyDeployedApplications != nil { + objectMap["MaxPercentUnhealthyDeployedApplications"] = dahe.MaxPercentUnhealthyDeployedApplications + } + if dahe.TotalCount != nil { + objectMap["TotalCount"] = dahe.TotalCount + } + if dahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dahe.UnhealthyEvaluations + } + if dahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dahe.AggregatedHealthState + } + if dahe.Description != nil { + objectMap["Description"] = dahe.Description + } + if dahe.Kind != "" { + objectMap["Kind"] = dahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return &dahe, true +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedApplicationsHealthEvaluation. +func (dahe DeployedApplicationsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dahe, true +} + +// DeployedCodePackageInfo information about code package deployed on a Service Fabric node. +type DeployedCodePackageInfo struct { + // Name - The name of the code package. + Name *string `json:"Name,omitempty"` + // Version - The version of the code package specified in service manifest. + Version *string `json:"Version,omitempty"` + // ServiceManifestName - The name of service manifest that specified this code package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostType - Specifies the type of host for main entry point of a code package as specified in service manifest. Possible values include: 'HostTypeInvalid', 'HostTypeExeHost', 'HostTypeContainerHost' + HostType HostType `json:"HostType,omitempty"` + // HostIsolationMode - Specifies the isolation mode of main entry point of a code package when it's host type is ContainerHost. This is specified as part of container host policies in application manifest while importing service manifest. Possible values include: 'HostIsolationModeNone', 'HostIsolationModeProcess', 'HostIsolationModeHyperV' + HostIsolationMode HostIsolationMode `json:"HostIsolationMode,omitempty"` + // Status - Specifies the status of a deployed application or service package on a Service Fabric node. Possible values include: 'DeploymentStatusInvalid', 'DeploymentStatusDownloading', 'DeploymentStatusActivating', 'DeploymentStatusActive', 'DeploymentStatusUpgrading', 'DeploymentStatusDeactivating' + Status DeploymentStatus `json:"Status,omitempty"` + // RunFrequencyInterval - The interval at which code package is run. This is used for periodic code package. + RunFrequencyInterval *string `json:"RunFrequencyInterval,omitempty"` + // SetupEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node. + SetupEntryPoint *CodePackageEntryPoint `json:"SetupEntryPoint,omitempty"` + // MainEntryPoint - Information about setup or main entry point of a code package deployed on a Service Fabric node. + MainEntryPoint *CodePackageEntryPoint `json:"MainEntryPoint,omitempty"` +} + +// DeployedServicePackageHealth information about the health of a service package for a specific +// application deployed on a Service Fabric node. +type DeployedServicePackageHealth struct { + autorest.Response `json:"-"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - Name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // NodeName - Name of the node where this service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// DeployedServicePackageHealthEvaluation represents health evaluation for a deployed service package, +// containing information about the data and the algorithm used by health store to evaluate health. The +// evaluation is returned only when the aggregated health state is either Error or Warning. +type DeployedServicePackageHealthEvaluation struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - The name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state. The type of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) MarshalJSON() ([]byte, error) { + dsphe.Kind = KindDeployedServicePackage + objectMap := make(map[string]interface{}) + if dsphe.NodeName != nil { + objectMap["NodeName"] = dsphe.NodeName + } + if dsphe.ApplicationName != nil { + objectMap["ApplicationName"] = dsphe.ApplicationName + } + if dsphe.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dsphe.ServiceManifestName + } + if dsphe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations + } + if dsphe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState + } + if dsphe.Description != nil { + objectMap["Description"] = dsphe.Description + } + if dsphe.Kind != "" { + objectMap["Kind"] = dsphe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return &dsphe, true +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackageHealthEvaluation. +func (dsphe DeployedServicePackageHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dsphe, true +} + +// DeployedServicePackageHealthReportExpiredEvent deployed Service Health Report Expired event. +type DeployedServicePackageHealthReportExpiredEvent struct { + // ServiceManifest - Service manifest name. + ServiceManifest *string `json:"ServiceManifest,omitempty"` + // ServicePackageInstanceID - Id of Service package instance. + ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + dsphree.Kind = KindDeployedServicePackageHealthReportExpired + objectMap := make(map[string]interface{}) + if dsphree.ServiceManifest != nil { + objectMap["ServiceManifest"] = dsphree.ServiceManifest + } + if dsphree.ServicePackageInstanceID != nil { + objectMap["ServicePackageInstanceId"] = dsphree.ServicePackageInstanceID + } + if dsphree.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dsphree.ServicePackageActivationID + } + if dsphree.NodeName != nil { + objectMap["NodeName"] = dsphree.NodeName + } + if dsphree.SourceID != nil { + objectMap["SourceId"] = dsphree.SourceID + } + if dsphree.Property != nil { + objectMap["Property"] = dsphree.Property + } + if dsphree.HealthState != nil { + objectMap["HealthState"] = dsphree.HealthState + } + if dsphree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = dsphree.TimeToLiveMs + } + if dsphree.SequenceNumber != nil { + objectMap["SequenceNumber"] = dsphree.SequenceNumber + } + if dsphree.Description != nil { + objectMap["Description"] = dsphree.Description + } + if dsphree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dsphree.RemoveWhenExpired + } + if dsphree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dsphree.SourceUtcTimestamp + } + if dsphree.ApplicationID != nil { + objectMap["ApplicationId"] = dsphree.ApplicationID + } + if dsphree.EventInstanceID != nil { + objectMap["EventInstanceId"] = dsphree.EventInstanceID + } + if dsphree.Category != nil { + objectMap["Category"] = dsphree.Category + } + if dsphree.TimeStamp != nil { + objectMap["TimeStamp"] = dsphree.TimeStamp + } + if dsphree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dsphree.HasCorrelatedEvents + } + if dsphree.Kind != "" { + objectMap["Kind"] = dsphree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dsphree, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return &dsphree, true +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageHealthReportExpiredEvent. +func (dsphree DeployedServicePackageHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dsphree, true +} + +// DeployedServicePackageHealthState represents the health state of a deployed service package, containing +// the entity identifier and the aggregated health state. +type DeployedServicePackageHealthState struct { + // NodeName - Name of the node on which the service package is deployed. + NodeName *string `json:"NodeName,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceManifestName - Name of the manifest describing the service package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// DeployedServicePackageHealthStateChunk represents the health state chunk of a deployed service package, +// which contains the service manifest name and the service package aggregated health state. +type DeployedServicePackageHealthStateChunk struct { + // ServiceManifestName - The name of the service manifest. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// DeployedServicePackageHealthStateChunkList the list of deployed service package health state chunks that +// respect the input filters in the chunk query. Returned by get cluster health state chunks query. +type DeployedServicePackageHealthStateChunkList struct { + // Items - The list of deployed service package health state chunks that respect the input filters in the chunk query. + Items *[]DeployedServicePackageHealthStateChunk `json:"Items,omitempty"` +} + +// DeployedServicePackageHealthStateFilter defines matching criteria to determine whether a deployed +// service package should be included as a child of a deployed application in the cluster health chunk. +// The deployed service packages are only returned if the parent entities match a filter specified in the +// cluster health chunk query description. The parent deployed application and its parent application must +// be included in the cluster health chunk. +// One filter can match zero, one or multiple deployed service packages, depending on its properties. +type DeployedServicePackageHealthStateFilter struct { + // ServiceManifestNameFilter - The name of the service manifest which identifies the deployed service packages that matches the filter. + // If specified, the filter is applied only to the specified deployed service packages, if any. + // If no deployed service packages with specified manifest name exist, nothing is returned in the cluster health chunk based on this filter. + // If any deployed service package exists, they are included in the cluster health chunk if it respects the other filter properties. + // If not specified, all deployed service packages that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ServiceManifestNameFilter *string `json:"ServiceManifestNameFilter,omitempty"` + // ServicePackageActivationIDFilter - The activation ID of a deployed service package that matches the filter. + // If not specified, the filter applies to all deployed service packages that match the other parameters. + // If specified, the filter matches only the deployed service package with the specified activation ID. + ServicePackageActivationIDFilter *string `json:"ServicePackageActivationIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the deployed service packages. It allows selecting deployed service packages if they match the desired health states. + // The possible values are integer value of one of the following health states. Only deployed service packages that match the filter are returned. All deployed service packages are used to evaluate the parent deployed application aggregated health state. + // If not specified, default value is None, unless the deployed service package ID is specified. If the filter has default value and deployed service package ID is specified, the matching deployed service package is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches deployed service packages with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// DeployedServicePackageInfo information about service package deployed on a Service Fabric node. +type DeployedServicePackageInfo struct { + // Name - The name of the service package as specified in the service manifest. + Name *string `json:"Name,omitempty"` + // Version - The version of the service package specified in service manifest. + Version *string `json:"Version,omitempty"` + // Status - Specifies the status of a deployed application or service package on a Service Fabric node. Possible values include: 'DeploymentStatusInvalid', 'DeploymentStatusDownloading', 'DeploymentStatusActivating', 'DeploymentStatusActive', 'DeploymentStatusUpgrading', 'DeploymentStatusDeactivating' + Status DeploymentStatus `json:"Status,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` +} + +// DeployedServicePackageNewHealthReportEvent deployed Service Health Report Created event. +type DeployedServicePackageNewHealthReportEvent struct { + // ServiceManifestName - Service manifest name. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageInstanceID - Id of Service package instance. + ServicePackageInstanceID *int64 `json:"ServicePackageInstanceId,omitempty"` + // ServicePackageActivationID - Id of Service package activation. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ApplicationID - The identity of the application. This is an encoded representation of the application name. This is used in the REST APIs to identify the application resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the application name is "fabric:/myapp/app1", + // the application identity would be "myapp\~app1" in 6.0+ and "myapp/app1" in previous versions. + ApplicationID *string `json:"ApplicationId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) MarshalJSON() ([]byte, error) { + dspnhre.Kind = KindDeployedServicePackageNewHealthReport + objectMap := make(map[string]interface{}) + if dspnhre.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dspnhre.ServiceManifestName + } + if dspnhre.ServicePackageInstanceID != nil { + objectMap["ServicePackageInstanceId"] = dspnhre.ServicePackageInstanceID + } + if dspnhre.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dspnhre.ServicePackageActivationID + } + if dspnhre.NodeName != nil { + objectMap["NodeName"] = dspnhre.NodeName + } + if dspnhre.SourceID != nil { + objectMap["SourceId"] = dspnhre.SourceID + } + if dspnhre.Property != nil { + objectMap["Property"] = dspnhre.Property + } + if dspnhre.HealthState != nil { + objectMap["HealthState"] = dspnhre.HealthState + } + if dspnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = dspnhre.TimeToLiveMs + } + if dspnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = dspnhre.SequenceNumber + } + if dspnhre.Description != nil { + objectMap["Description"] = dspnhre.Description + } + if dspnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = dspnhre.RemoveWhenExpired + } + if dspnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = dspnhre.SourceUtcTimestamp + } + if dspnhre.ApplicationID != nil { + objectMap["ApplicationId"] = dspnhre.ApplicationID + } + if dspnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = dspnhre.EventInstanceID + } + if dspnhre.Category != nil { + objectMap["Category"] = dspnhre.Category + } + if dspnhre.TimeStamp != nil { + objectMap["TimeStamp"] = dspnhre.TimeStamp + } + if dspnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = dspnhre.HasCorrelatedEvents + } + if dspnhre.Kind != "" { + objectMap["Kind"] = dspnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return &dspnhre, true +} + +// AsClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return &dspnhre, true +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for DeployedServicePackageNewHealthReportEvent. +func (dspnhre DeployedServicePackageNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &dspnhre, true +} + +// DeployedServicePackagesHealthEvaluation represents health evaluation for deployed service packages, +// containing health evaluations for each unhealthy deployed service package that impacted current +// aggregated health state. Can be returned when evaluating deployed application health and the aggregated +// health state is either Error or Warning. +type DeployedServicePackagesHealthEvaluation struct { + // TotalCount - Total number of deployed service packages of the deployed application in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy DeployedServicePackageHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) MarshalJSON() ([]byte, error) { + dsphe.Kind = KindDeployedServicePackages + objectMap := make(map[string]interface{}) + if dsphe.TotalCount != nil { + objectMap["TotalCount"] = dsphe.TotalCount + } + if dsphe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = dsphe.UnhealthyEvaluations + } + if dsphe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = dsphe.AggregatedHealthState + } + if dsphe.Description != nil { + objectMap["Description"] = dsphe.Description + } + if dsphe.Kind != "" { + objectMap["Kind"] = dsphe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return &dsphe, true +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for DeployedServicePackagesHealthEvaluation. +func (dsphe DeployedServicePackagesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &dsphe, true +} + +// BasicDeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node. +type BasicDeployedServiceReplicaDetailInfo interface { + AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) + AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) + AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) +} + +// DeployedServiceReplicaDetailInfo information about a Service Fabric service replica deployed on a node. +type DeployedServiceReplicaDetailInfo struct { + autorest.Response `json:"-"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicDeployedServiceReplicaDetailInfo(body []byte) (BasicDeployedServiceReplicaDetailInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindStateful1): + var dssrdi DeployedStatefulServiceReplicaDetailInfo + err := json.Unmarshal(body, &dssrdi) + return dssrdi, err + case string(ServiceKindStateless1): + var dssidi DeployedStatelessServiceInstanceDetailInfo + err := json.Unmarshal(body, &dssidi) + return dssidi, err + default: + var dsrdi DeployedServiceReplicaDetailInfo + err := json.Unmarshal(body, &dsrdi) + return dsrdi, err + } +} +func unmarshalBasicDeployedServiceReplicaDetailInfoArray(body []byte) ([]BasicDeployedServiceReplicaDetailInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dsrdiArray := make([]BasicDeployedServiceReplicaDetailInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(*rawMessage) + if err != nil { + return nil, err + } + dsrdiArray[index] = dsrdi + } + return dsrdiArray, nil +} + +// MarshalJSON is the custom marshaler for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) { + dsrdi.ServiceKind = ServiceKindDeployedServiceReplicaDetailInfo + objectMap := make(map[string]interface{}) + if dsrdi.ServiceName != nil { + objectMap["ServiceName"] = dsrdi.ServiceName + } + if dsrdi.PartitionID != nil { + objectMap["PartitionId"] = dsrdi.PartitionID + } + if dsrdi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dsrdi.CurrentServiceOperation + } + if dsrdi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dsrdi.CurrentServiceOperationStartTimeUtc + } + if dsrdi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dsrdi.ReportedLoad + } + if dsrdi.ServiceKind != "" { + objectMap["ServiceKind"] = dsrdi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return &dsrdi, true +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedServiceReplicaDetailInfo. +func (dsrdi DeployedServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dsrdi, true +} + +// DeployedServiceReplicaDetailInfoModel ... +type DeployedServiceReplicaDetailInfoModel struct { + autorest.Response `json:"-"` + Value BasicDeployedServiceReplicaDetailInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for DeployedServiceReplicaDetailInfoModel struct. +func (dsrdim *DeployedServiceReplicaDetailInfoModel) UnmarshalJSON(body []byte) error { + dsrdi, err := unmarshalBasicDeployedServiceReplicaDetailInfo(body) + if err != nil { + return err + } + dsrdim.Value = dsrdi + + return nil +} + +// BasicDeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node. +type BasicDeployedServiceReplicaInfo interface { + AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) + AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) + AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) +} + +// DeployedServiceReplicaInfo information about a Service Fabric service replica deployed on a node. +type DeployedServiceReplicaInfo struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicDeployedServiceReplicaInfo(body []byte) (BasicDeployedServiceReplicaInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful): + var dssri DeployedStatefulServiceReplicaInfo + err := json.Unmarshal(body, &dssri) + return dssri, err + case string(ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless): + var dssii DeployedStatelessServiceInstanceInfo + err := json.Unmarshal(body, &dssii) + return dssii, err + default: + var dsri DeployedServiceReplicaInfo + err := json.Unmarshal(body, &dsri) + return dsri, err + } +} +func unmarshalBasicDeployedServiceReplicaInfoArray(body []byte) ([]BasicDeployedServiceReplicaInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dsriArray := make([]BasicDeployedServiceReplicaInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsri, err := unmarshalBasicDeployedServiceReplicaInfo(*rawMessage) + if err != nil { + return nil, err + } + dsriArray[index] = dsri + } + return dsriArray, nil +} + +// MarshalJSON is the custom marshaler for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) MarshalJSON() ([]byte, error) { + dsri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo + objectMap := make(map[string]interface{}) + if dsri.ServiceName != nil { + objectMap["ServiceName"] = dsri.ServiceName + } + if dsri.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dsri.ServiceTypeName + } + if dsri.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dsri.ServiceManifestName + } + if dsri.CodePackageName != nil { + objectMap["CodePackageName"] = dsri.CodePackageName + } + if dsri.PartitionID != nil { + objectMap["PartitionId"] = dsri.PartitionID + } + if dsri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dsri.ReplicaStatus + } + if dsri.Address != nil { + objectMap["Address"] = dsri.Address + } + if dsri.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dsri.ServicePackageActivationID + } + if dsri.HostProcessID != nil { + objectMap["HostProcessId"] = dsri.HostProcessID + } + if dsri.ServiceKind != "" { + objectMap["ServiceKind"] = dsri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return &dsri, true +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedServiceReplicaInfo. +func (dsri DeployedServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dsri, true +} + +// DeployedServiceTypeInfo information about service type deployed on a node, information such as the +// status of the service type registration on a node. +type DeployedServiceTypeInfo struct { + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that registered the service type. + CodePackageName *string `json:"CodePackageName,omitempty"` + // Status - The status of the service type registration on the node. Possible values include: 'ServiceTypeRegistrationStatusInvalid', 'ServiceTypeRegistrationStatusDisabled', 'ServiceTypeRegistrationStatusEnabled', 'ServiceTypeRegistrationStatusRegistered' + Status ServiceTypeRegistrationStatus `json:"Status,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` +} + +// DeployedStatefulServiceReplicaDetailInfo information about a stateful replica running in a code package. +// Note DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, ServiceName, +// PartitionId and replicaId. +type DeployedStatefulServiceReplicaDetailInfo struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // CurrentReplicatorOperation - Specifies the operation currently being executed by the Replicator. Possible values include: 'ReplicatorOperationNameInvalid', 'ReplicatorOperationNameNone', 'ReplicatorOperationNameOpen', 'ReplicatorOperationNameChangeRole', 'ReplicatorOperationNameUpdateEpoch', 'ReplicatorOperationNameClose', 'ReplicatorOperationNameAbort', 'ReplicatorOperationNameOnDataLoss', 'ReplicatorOperationNameWaitForCatchup', 'ReplicatorOperationNameBuild' + CurrentReplicatorOperation ReplicatorOperationName `json:"CurrentReplicatorOperation,omitempty"` + // ReadStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum' + ReadStatus PartitionAccessStatus `json:"ReadStatus,omitempty"` + // WriteStatus - Specifies the access status of the partition. Possible values include: 'PartitionAccessStatusInvalid', 'PartitionAccessStatusGranted', 'PartitionAccessStatusReconfigurationPending', 'PartitionAccessStatusNotPrimary', 'PartitionAccessStatusNoWriteQuorum' + WriteStatus PartitionAccessStatus `json:"WriteStatus,omitempty"` + // ReplicatorStatus - Represents a base class for primary or secondary replicator status. + // Contains information about the service fabric replicator like the replication/copy queue utilization, last acknowledgement received timestamp, etc. + ReplicatorStatus BasicReplicatorStatus `json:"ReplicatorStatus,omitempty"` + // ReplicaStatus - Key value store related information for the replica. + ReplicaStatus *KeyValueStoreReplicaStatus `json:"ReplicaStatus,omitempty"` + // DeployedServiceReplicaQueryResult - Information about a stateful service replica deployed on a node. + DeployedServiceReplicaQueryResult *DeployedStatefulServiceReplicaInfo `json:"DeployedServiceReplicaQueryResult,omitempty"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) MarshalJSON() ([]byte, error) { + dssrdi.ServiceKind = ServiceKindStateful1 + objectMap := make(map[string]interface{}) + if dssrdi.ReplicaID != nil { + objectMap["ReplicaId"] = dssrdi.ReplicaID + } + if dssrdi.CurrentReplicatorOperation != "" { + objectMap["CurrentReplicatorOperation"] = dssrdi.CurrentReplicatorOperation + } + if dssrdi.ReadStatus != "" { + objectMap["ReadStatus"] = dssrdi.ReadStatus + } + if dssrdi.WriteStatus != "" { + objectMap["WriteStatus"] = dssrdi.WriteStatus + } + objectMap["ReplicatorStatus"] = dssrdi.ReplicatorStatus + if dssrdi.ReplicaStatus != nil { + objectMap["ReplicaStatus"] = dssrdi.ReplicaStatus + } + if dssrdi.DeployedServiceReplicaQueryResult != nil { + objectMap["DeployedServiceReplicaQueryResult"] = dssrdi.DeployedServiceReplicaQueryResult + } + if dssrdi.ServiceName != nil { + objectMap["ServiceName"] = dssrdi.ServiceName + } + if dssrdi.PartitionID != nil { + objectMap["PartitionId"] = dssrdi.PartitionID + } + if dssrdi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dssrdi.CurrentServiceOperation + } + if dssrdi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dssrdi.CurrentServiceOperationStartTimeUtc + } + if dssrdi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dssrdi.ReportedLoad + } + if dssrdi.ServiceKind != "" { + objectMap["ServiceKind"] = dssrdi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return &dssrdi, true +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatefulServiceReplicaDetailInfo. +func (dssrdi DeployedStatefulServiceReplicaDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dssrdi, true +} + +// UnmarshalJSON is the custom unmarshaler for DeployedStatefulServiceReplicaDetailInfo struct. +func (dssrdi *DeployedStatefulServiceReplicaDetailInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ReplicaId": + if v != nil { + var replicaID string + err = json.Unmarshal(*v, &replicaID) + if err != nil { + return err + } + dssrdi.ReplicaID = &replicaID + } + case "CurrentReplicatorOperation": + if v != nil { + var currentReplicatorOperation ReplicatorOperationName + err = json.Unmarshal(*v, ¤tReplicatorOperation) + if err != nil { + return err + } + dssrdi.CurrentReplicatorOperation = currentReplicatorOperation + } + case "ReadStatus": + if v != nil { + var readStatus PartitionAccessStatus + err = json.Unmarshal(*v, &readStatus) + if err != nil { + return err + } + dssrdi.ReadStatus = readStatus + } + case "WriteStatus": + if v != nil { + var writeStatus PartitionAccessStatus + err = json.Unmarshal(*v, &writeStatus) + if err != nil { + return err + } + dssrdi.WriteStatus = writeStatus + } + case "ReplicatorStatus": + if v != nil { + replicatorStatus, err := unmarshalBasicReplicatorStatus(*v) + if err != nil { + return err + } + dssrdi.ReplicatorStatus = replicatorStatus + } + case "ReplicaStatus": + if v != nil { + var replicaStatus KeyValueStoreReplicaStatus + err = json.Unmarshal(*v, &replicaStatus) + if err != nil { + return err + } + dssrdi.ReplicaStatus = &replicaStatus + } + case "DeployedServiceReplicaQueryResult": + if v != nil { + var deployedServiceReplicaQueryResult DeployedStatefulServiceReplicaInfo + err = json.Unmarshal(*v, &deployedServiceReplicaQueryResult) + if err != nil { + return err + } + dssrdi.DeployedServiceReplicaQueryResult = &deployedServiceReplicaQueryResult + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + dssrdi.ServiceName = &serviceName + } + case "PartitionId": + if v != nil { + var partitionID uuid.UUID + err = json.Unmarshal(*v, &partitionID) + if err != nil { + return err + } + dssrdi.PartitionID = &partitionID + } + case "CurrentServiceOperation": + if v != nil { + var currentServiceOperation ServiceOperationName + err = json.Unmarshal(*v, ¤tServiceOperation) + if err != nil { + return err + } + dssrdi.CurrentServiceOperation = currentServiceOperation + } + case "CurrentServiceOperationStartTimeUtc": + if v != nil { + var currentServiceOperationStartTimeUtc date.Time + err = json.Unmarshal(*v, ¤tServiceOperationStartTimeUtc) + if err != nil { + return err + } + dssrdi.CurrentServiceOperationStartTimeUtc = ¤tServiceOperationStartTimeUtc + } + case "ReportedLoad": + if v != nil { + var reportedLoad []LoadMetricReportInfo + err = json.Unmarshal(*v, &reportedLoad) + if err != nil { + return err + } + dssrdi.ReportedLoad = &reportedLoad + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicDeployedServiceReplicaDetailInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + dssrdi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// DeployedStatefulServiceReplicaInfo information about a stateful service replica deployed on a node. +type DeployedStatefulServiceReplicaInfo struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"` + // ReconfigurationInformation - Information about current reconfiguration like phase, type, previous configuration role of replica and reconfiguration start date time. + ReconfigurationInformation *ReconfigurationInformation `json:"ReconfigurationInformation,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) { + dssri.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if dssri.ReplicaID != nil { + objectMap["ReplicaId"] = dssri.ReplicaID + } + if dssri.ReplicaRole != "" { + objectMap["ReplicaRole"] = dssri.ReplicaRole + } + if dssri.ReconfigurationInformation != nil { + objectMap["ReconfigurationInformation"] = dssri.ReconfigurationInformation + } + if dssri.ServiceName != nil { + objectMap["ServiceName"] = dssri.ServiceName + } + if dssri.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dssri.ServiceTypeName + } + if dssri.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dssri.ServiceManifestName + } + if dssri.CodePackageName != nil { + objectMap["CodePackageName"] = dssri.CodePackageName + } + if dssri.PartitionID != nil { + objectMap["PartitionId"] = dssri.PartitionID + } + if dssri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dssri.ReplicaStatus + } + if dssri.Address != nil { + objectMap["Address"] = dssri.Address + } + if dssri.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dssri.ServicePackageActivationID + } + if dssri.HostProcessID != nil { + objectMap["HostProcessId"] = dssri.HostProcessID + } + if dssri.ServiceKind != "" { + objectMap["ServiceKind"] = dssri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return &dssri, true +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatefulServiceReplicaInfo. +func (dssri DeployedStatefulServiceReplicaInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dssri, true +} + +// DeployedStatelessServiceInstanceDetailInfo information about a stateless instance running in a code +// package. Note that DeployedServiceReplicaQueryResult will contain duplicate data like ServiceKind, +// ServiceName, PartitionId and InstanceId. +type DeployedStatelessServiceInstanceDetailInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // DeployedServiceReplicaQueryResult - Information about a stateless service instance deployed on a node. + DeployedServiceReplicaQueryResult *DeployedStatelessServiceInstanceInfo `json:"DeployedServiceReplicaQueryResult,omitempty"` + // ServiceName - Full hierarchical name of the service in URI format starting with `fabric:`. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // CurrentServiceOperation - Specifies the current active life-cycle operation on a stateful service replica or stateless service instance. Possible values include: 'ServiceOperationNameUnknown', 'ServiceOperationNameNone', 'ServiceOperationNameOpen', 'ServiceOperationNameChangeRole', 'ServiceOperationNameClose', 'ServiceOperationNameAbort' + CurrentServiceOperation ServiceOperationName `json:"CurrentServiceOperation,omitempty"` + // CurrentServiceOperationStartTimeUtc - The start time of the current service operation in UTC format. + CurrentServiceOperationStartTimeUtc *date.Time `json:"CurrentServiceOperationStartTimeUtc,omitempty"` + // ReportedLoad - List of load reported by replica. + ReportedLoad *[]LoadMetricReportInfo `json:"ReportedLoad,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindDeployedServiceReplicaDetailInfo', 'ServiceKindStateful1', 'ServiceKindStateless1' + ServiceKind ServiceKindBasicDeployedServiceReplicaDetailInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) MarshalJSON() ([]byte, error) { + dssidi.ServiceKind = ServiceKindStateless1 + objectMap := make(map[string]interface{}) + if dssidi.InstanceID != nil { + objectMap["InstanceId"] = dssidi.InstanceID + } + if dssidi.DeployedServiceReplicaQueryResult != nil { + objectMap["DeployedServiceReplicaQueryResult"] = dssidi.DeployedServiceReplicaQueryResult + } + if dssidi.ServiceName != nil { + objectMap["ServiceName"] = dssidi.ServiceName + } + if dssidi.PartitionID != nil { + objectMap["PartitionId"] = dssidi.PartitionID + } + if dssidi.CurrentServiceOperation != "" { + objectMap["CurrentServiceOperation"] = dssidi.CurrentServiceOperation + } + if dssidi.CurrentServiceOperationStartTimeUtc != nil { + objectMap["CurrentServiceOperationStartTimeUtc"] = dssidi.CurrentServiceOperationStartTimeUtc + } + if dssidi.ReportedLoad != nil { + objectMap["ReportedLoad"] = dssidi.ReportedLoad + } + if dssidi.ServiceKind != "" { + objectMap["ServiceKind"] = dssidi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatefulServiceReplicaDetailInfo() (*DeployedStatefulServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedStatelessServiceInstanceDetailInfo() (*DeployedStatelessServiceInstanceDetailInfo, bool) { + return &dssidi, true +} + +// AsDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsDeployedServiceReplicaDetailInfo() (*DeployedServiceReplicaDetailInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaDetailInfo is the BasicDeployedServiceReplicaDetailInfo implementation for DeployedStatelessServiceInstanceDetailInfo. +func (dssidi DeployedStatelessServiceInstanceDetailInfo) AsBasicDeployedServiceReplicaDetailInfo() (BasicDeployedServiceReplicaDetailInfo, bool) { + return &dssidi, true +} + +// DeployedStatelessServiceInstanceInfo information about a stateless service instance deployed on a node. +type DeployedStatelessServiceInstanceInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // CodePackageName - The name of the code package that hosts this replica. + CodePackageName *string `json:"CodePackageName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // Address - The last address returned by the replica in Open or ChangeRole. + Address *string `json:"Address,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // HostProcessID - Host process ID of the process that is hosting the replica. This will be zero if the replica is down. In hyper-v containers this host process ID will be from different kernel. + HostProcessID *string `json:"HostProcessId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindDeployedServiceReplicaInfo', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateful', 'ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicDeployedServiceReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) { + dssii.ServiceKind = ServiceKindBasicDeployedServiceReplicaInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if dssii.InstanceID != nil { + objectMap["InstanceId"] = dssii.InstanceID + } + if dssii.ServiceName != nil { + objectMap["ServiceName"] = dssii.ServiceName + } + if dssii.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = dssii.ServiceTypeName + } + if dssii.ServiceManifestName != nil { + objectMap["ServiceManifestName"] = dssii.ServiceManifestName + } + if dssii.CodePackageName != nil { + objectMap["CodePackageName"] = dssii.CodePackageName + } + if dssii.PartitionID != nil { + objectMap["PartitionId"] = dssii.PartitionID + } + if dssii.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = dssii.ReplicaStatus + } + if dssii.Address != nil { + objectMap["Address"] = dssii.Address + } + if dssii.ServicePackageActivationID != nil { + objectMap["ServicePackageActivationId"] = dssii.ServicePackageActivationID + } + if dssii.HostProcessID != nil { + objectMap["HostProcessId"] = dssii.HostProcessID + } + if dssii.ServiceKind != "" { + objectMap["ServiceKind"] = dssii.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsDeployedStatefulServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatefulServiceReplicaInfo() (*DeployedStatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsDeployedStatelessServiceInstanceInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedStatelessServiceInstanceInfo() (*DeployedStatelessServiceInstanceInfo, bool) { + return &dssii, true +} + +// AsDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsDeployedServiceReplicaInfo() (*DeployedServiceReplicaInfo, bool) { + return nil, false +} + +// AsBasicDeployedServiceReplicaInfo is the BasicDeployedServiceReplicaInfo implementation for DeployedStatelessServiceInstanceInfo. +func (dssii DeployedStatelessServiceInstanceInfo) AsBasicDeployedServiceReplicaInfo() (BasicDeployedServiceReplicaInfo, bool) { + return &dssii, true +} + +// DeployServicePackageToNodeDescription defines description for downloading packages associated with a +// service manifest to image cache on a Service Fabric node. +type DeployServicePackageToNodeDescription struct { + // ServiceManifestName - The name of service manifest whose packages need to be downloaded. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ApplicationTypeName - The application type name as defined in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - The version of the application type as defined in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // PackageSharingPolicy - List of package sharing policy information. + PackageSharingPolicy *[]PackageSharingPolicyInfo `json:"PackageSharingPolicy,omitempty"` +} + +// DiagnosticsDescription describes the diagnostics options available +type DiagnosticsDescription struct { + // Sinks - List of supported sinks that can be referenced. + Sinks *[]BasicDiagnosticsSinkProperties `json:"sinks,omitempty"` + // Enabled - Status of whether or not sinks are enabled. + Enabled *bool `json:"enabled,omitempty"` + // DefaultSinkRefs - The sinks to be used if diagnostics is enabled. Sink choices can be overridden at the service and code package level. + DefaultSinkRefs *[]string `json:"defaultSinkRefs,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for DiagnosticsDescription struct. +func (dd *DiagnosticsDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "sinks": + if v != nil { + sinks, err := unmarshalBasicDiagnosticsSinkPropertiesArray(*v) + if err != nil { + return err + } + dd.Sinks = &sinks + } + case "enabled": + if v != nil { + var enabled bool + err = json.Unmarshal(*v, &enabled) + if err != nil { + return err + } + dd.Enabled = &enabled + } + case "defaultSinkRefs": + if v != nil { + var defaultSinkRefs []string + err = json.Unmarshal(*v, &defaultSinkRefs) + if err != nil { + return err + } + dd.DefaultSinkRefs = &defaultSinkRefs + } + } + } + + return nil +} + +// DiagnosticsRef reference to sinks in DiagnosticsDescription. +type DiagnosticsRef struct { + // Enabled - Status of whether or not sinks are enabled. + Enabled *bool `json:"enabled,omitempty"` + // SinkRefs - List of sinks to be used if enabled. References the list of sinks in DiagnosticsDescription. + SinkRefs *[]string `json:"sinkRefs,omitempty"` +} + +// BasicDiagnosticsSinkProperties properties of a DiagnosticsSink. +type BasicDiagnosticsSinkProperties interface { + AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) + AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) +} + +// DiagnosticsSinkProperties properties of a DiagnosticsSink. +type DiagnosticsSinkProperties struct { + // Name - Name of the sink. This value is referenced by DiagnosticsReferenceDescription + Name *string `json:"name,omitempty"` + // Description - A description of the sink. + Description *string `json:"description,omitempty"` + // Kind - Possible values include: 'KindDiagnosticsSinkProperties', 'KindAzureInternalMonitoringPipeline' + Kind KindBasicDiagnosticsSinkProperties `json:"kind,omitempty"` +} + +func unmarshalBasicDiagnosticsSinkProperties(body []byte) (BasicDiagnosticsSinkProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindAzureInternalMonitoringPipeline): + var aimpsd AzureInternalMonitoringPipelineSinkDescription + err := json.Unmarshal(body, &aimpsd) + return aimpsd, err + default: + var dsp DiagnosticsSinkProperties + err := json.Unmarshal(body, &dsp) + return dsp, err + } +} +func unmarshalBasicDiagnosticsSinkPropertiesArray(body []byte) ([]BasicDiagnosticsSinkProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + dspArray := make([]BasicDiagnosticsSinkProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + dsp, err := unmarshalBasicDiagnosticsSinkProperties(*rawMessage) + if err != nil { + return nil, err + } + dspArray[index] = dsp + } + return dspArray, nil +} + +// MarshalJSON is the custom marshaler for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) MarshalJSON() ([]byte, error) { + dsp.Kind = KindDiagnosticsSinkProperties + objectMap := make(map[string]interface{}) + if dsp.Name != nil { + objectMap["name"] = dsp.Name + } + if dsp.Description != nil { + objectMap["description"] = dsp.Description + } + if dsp.Kind != "" { + objectMap["kind"] = dsp.Kind + } + return json.Marshal(objectMap) +} + +// AsAzureInternalMonitoringPipelineSinkDescription is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) AsAzureInternalMonitoringPipelineSinkDescription() (*AzureInternalMonitoringPipelineSinkDescription, bool) { + return nil, false +} + +// AsDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) AsDiagnosticsSinkProperties() (*DiagnosticsSinkProperties, bool) { + return &dsp, true +} + +// AsBasicDiagnosticsSinkProperties is the BasicDiagnosticsSinkProperties implementation for DiagnosticsSinkProperties. +func (dsp DiagnosticsSinkProperties) AsBasicDiagnosticsSinkProperties() (BasicDiagnosticsSinkProperties, bool) { + return &dsp, true +} + +// DisableBackupDescription it describes the body parameters while disabling backup of a backup +// entity(Application/Service/Partition). +type DisableBackupDescription struct { + // CleanBackup - Boolean flag to delete backups. It can be set to true for deleting all the backups which were created for the backup entity that is getting disabled for backup. + CleanBackup *bool `json:"CleanBackup,omitempty"` +} + +// DoublePropertyValue describes a Service Fabric property value of type Double. +type DoublePropertyValue struct { + // Data - The data of the property value. + Data *float64 `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for DoublePropertyValue. +func (dpv DoublePropertyValue) MarshalJSON() ([]byte, error) { + dpv.Kind = KindDouble + objectMap := make(map[string]interface{}) + if dpv.Data != nil { + objectMap["Data"] = dpv.Data + } + if dpv.Kind != "" { + objectMap["Kind"] = dpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return &dpv, true +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for DoublePropertyValue. +func (dpv DoublePropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &dpv, true +} + +// EnableBackupDescription specifies the parameters needed to enable periodic backup. +type EnableBackupDescription struct { + // BackupPolicyName - Name of the backup policy to be used for enabling periodic backups. + BackupPolicyName *string `json:"BackupPolicyName,omitempty"` +} + +// EndpointProperties describes a container endpoint. +type EndpointProperties struct { + // Name - The name of the endpoint. + Name *string `json:"name,omitempty"` + // Port - Port used by the container. + Port *int32 `json:"port,omitempty"` +} + +// EndpointRef describes a reference to a service endpoint. +type EndpointRef struct { + // Name - Name of the endpoint. + Name *string `json:"name,omitempty"` +} + +// EnsureAvailabilitySafetyCheck safety check that waits to ensure the availability of the partition. It +// waits until there are replicas available such that bringing down this replica will not cause +// availability loss for the partition. +type EnsureAvailabilitySafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) MarshalJSON() ([]byte, error) { + easc.Kind = KindEnsureAvailability + objectMap := make(map[string]interface{}) + if easc.PartitionID != nil { + objectMap["PartitionId"] = easc.PartitionID + } + if easc.Kind != "" { + objectMap["Kind"] = easc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &easc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return &easc, true +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsureAvailabilitySafetyCheck. +func (easc EnsureAvailabilitySafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &easc, true +} + +// EnsurePartitionQurumSafetyCheck safety check that ensures that a quorum of replicas are not lost for a +// partition. +type EnsurePartitionQurumSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) MarshalJSON() ([]byte, error) { + epqsc.Kind = KindEnsurePartitionQuorum + objectMap := make(map[string]interface{}) + if epqsc.PartitionID != nil { + objectMap["PartitionId"] = epqsc.PartitionID + } + if epqsc.Kind != "" { + objectMap["Kind"] = epqsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &epqsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return &epqsc, true +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for EnsurePartitionQurumSafetyCheck. +func (epqsc EnsurePartitionQurumSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &epqsc, true +} + +// EntityHealth health information common to all entities in the cluster. It contains the aggregated health +// state, health events and unhealthy evaluation. +type EntityHealth struct { + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// EntityHealthState a base type for the health state of various entities in the cluster. It contains the +// aggregated health state. +type EntityHealthState struct { + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// EntityHealthStateChunk a base type for the health state chunk of various entities in the cluster. It +// contains the aggregated health state. +type EntityHealthStateChunk struct { + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// EntityHealthStateChunkList a base type for the list of health state chunks found in the cluster. It +// contains the total number of health states that match the input filters. +type EntityHealthStateChunkList struct { + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// EntityKindHealthStateCount represents health state count for entities of the specified entity kind. +type EntityKindHealthStateCount struct { + // EntityKind - The entity kind for which health states are evaluated. Possible values include: 'EntityKindInvalid', 'EntityKindNode', 'EntityKindPartition', 'EntityKindService', 'EntityKindApplication', 'EntityKindReplica', 'EntityKindDeployedApplication', 'EntityKindDeployedServicePackage', 'EntityKindCluster' + EntityKind EntityKind `json:"EntityKind,omitempty"` + // HealthStateCount - The health state count for the entities of the specified kind. + HealthStateCount *HealthStateCount `json:"HealthStateCount,omitempty"` +} + +// EnvironmentVariable describes an environment variable for the container. +type EnvironmentVariable struct { + // Name - The name of the environment variable. + Name *string `json:"name,omitempty"` + // Value - The value of the environment variable. + Value *string `json:"value,omitempty"` +} + +// Epoch an Epoch is a configuration number for the partition as a whole. When the configuration of the +// replica set changes, for example when the Primary replica changes, the operations that are replicated +// from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary +// replica. +type Epoch struct { + // ConfigurationVersion - The current configuration number of this Epoch. The configuration number is an increasing value that is updated whenever the configuration of this replica set changes. + ConfigurationVersion *string `json:"ConfigurationVersion,omitempty"` + // DataLossVersion - The current dataloss number of this Epoch. The data loss number property is an increasing value which is updated whenever data loss is suspected, as when loss of a quorum of replicas in the replica set that includes the Primary replica. + DataLossVersion *string `json:"DataLossVersion,omitempty"` +} + +// EventHealthEvaluation represents health evaluation of a HealthEvent that was reported on the entity. +// The health evaluation is returned when evaluating health of an entity results in Error or Warning. +type EventHealthEvaluation struct { + // ConsiderWarningAsError - Indicates whether warnings are treated with the same severity as errors. The field is specified in the health policy used to evaluate the entity. + ConsiderWarningAsError *bool `json:"ConsiderWarningAsError,omitempty"` + // UnhealthyEvent - Represents health information reported on a health entity, such as cluster, application or node, with additional metadata added by the Health Manager. + UnhealthyEvent *HealthEvent `json:"UnhealthyEvent,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for EventHealthEvaluation. +func (ehe EventHealthEvaluation) MarshalJSON() ([]byte, error) { + ehe.Kind = KindEvent + objectMap := make(map[string]interface{}) + if ehe.ConsiderWarningAsError != nil { + objectMap["ConsiderWarningAsError"] = ehe.ConsiderWarningAsError + } + if ehe.UnhealthyEvent != nil { + objectMap["UnhealthyEvent"] = ehe.UnhealthyEvent + } + if ehe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ehe.AggregatedHealthState + } + if ehe.Description != nil { + objectMap["Description"] = ehe.Description + } + if ehe.Kind != "" { + objectMap["Kind"] = ehe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return &ehe, true +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for EventHealthEvaluation. +func (ehe EventHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &ehe, true +} + +// ExecutingFaultsChaosEvent describes a Chaos event that gets generated when Chaos has decided on the +// faults for an iteration. This Chaos event contains the details of the faults as a list of strings. +type ExecutingFaultsChaosEvent struct { + // Faults - List of string description of the faults that Chaos decided to execute in an iteration. + Faults *[]string `json:"Faults,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) MarshalJSON() ([]byte, error) { + efce.Kind = KindExecutingFaults + objectMap := make(map[string]interface{}) + if efce.Faults != nil { + objectMap["Faults"] = efce.Faults + } + if efce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = efce.TimeStampUtc + } + if efce.Kind != "" { + objectMap["Kind"] = efce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return &efce, true +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ExecutingFaultsChaosEvent. +func (efce ExecutingFaultsChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &efce, true +} + +// ExternalStoreProvisionApplicationTypeDescription describes the operation to register or provision an +// application type using an application package from an external store instead of a package uploaded to +// the Service Fabric image store. +type ExternalStoreProvisionApplicationTypeDescription struct { + // ApplicationPackageDownloadURI - The path to the '.sfpkg' application package from where the application package can be downloaded using HTTP or HTTPS protocols. The application package can be stored in an external store that provides GET operation to download the file. Supported protocols are HTTP and HTTPS, and the path must allow READ access. + ApplicationPackageDownloadURI *string `json:"ApplicationPackageDownloadUri,omitempty"` + // ApplicationTypeName - The application type name represents the name of the application type found in the application manifest. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ApplicationTypeVersion - The application type version represents the version of the application type found in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) { + espatd.Kind = KindExternalStore + objectMap := make(map[string]interface{}) + if espatd.ApplicationPackageDownloadURI != nil { + objectMap["ApplicationPackageDownloadUri"] = espatd.ApplicationPackageDownloadURI + } + if espatd.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = espatd.ApplicationTypeName + } + if espatd.ApplicationTypeVersion != nil { + objectMap["ApplicationTypeVersion"] = espatd.ApplicationTypeVersion + } + if espatd.Async != nil { + objectMap["Async"] = espatd.Async + } + if espatd.Kind != "" { + objectMap["Kind"] = espatd.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return &espatd, true +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return nil, false +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ExternalStoreProvisionApplicationTypeDescription. +func (espatd ExternalStoreProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &espatd, true +} + +// FabricCodeVersionInfo information about a Service Fabric code version. +type FabricCodeVersionInfo struct { + // CodeVersion - The product version of Service Fabric. + CodeVersion *string `json:"CodeVersion,omitempty"` +} + +// FabricConfigVersionInfo information about a Service Fabric config version. +type FabricConfigVersionInfo struct { + // ConfigVersion - The config version of Service Fabric. + ConfigVersion *string `json:"ConfigVersion,omitempty"` +} + +// FabricError the REST API operations for Service Fabric return standard HTTP status codes. This type +// defines the additional information returned from the Service Fabric API operations that are not +// successful. +type FabricError struct { + // Error - Error object containing error code and error message. + Error *FabricErrorError `json:"Error,omitempty"` +} + +// FabricErrorError error object containing error code and error message. +type FabricErrorError struct { + // Code - Defines the fabric error codes that be returned as part of the error object in response to Service Fabric API operations that are not successful. Following are the error code values that can be returned for a specific HTTP status code. + // - Possible values of the error code for HTTP status code 400 (Bad Request) + // - "FABRIC_E_INVALID_PARTITION_KEY" + // - "FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR" + // - "FABRIC_E_INVALID_ADDRESS" + // - "FABRIC_E_APPLICATION_NOT_UPGRADING" + // - "FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR" + // - "FABRIC_E_FABRIC_NOT_UPGRADING" + // - "FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR" + // - "FABRIC_E_INVALID_CONFIGURATION" + // - "FABRIC_E_INVALID_NAME_URI" + // - "FABRIC_E_PATH_TOO_LONG" + // - "FABRIC_E_KEY_TOO_LARGE" + // - "FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED" + // - "FABRIC_E_INVALID_ATOMIC_GROUP" + // - "FABRIC_E_VALUE_EMPTY" + // - "FABRIC_E_BACKUP_IS_ENABLED" + // - "FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH" + // - "FABRIC_E_INVALID_FOR_STATELESS_SERVICES" + // - "FABRIC_E_INVALID_SERVICE_SCALING_POLICY" + // - "E_INVALIDARG" + // - Possible values of the error code for HTTP status code 404 (Not Found) + // - "FABRIC_E_NODE_NOT_FOUND" + // - "FABRIC_E_APPLICATION_TYPE_NOT_FOUND" + // - "FABRIC_E_APPLICATION_NOT_FOUND" + // - "FABRIC_E_SERVICE_TYPE_NOT_FOUND" + // - "FABRIC_E_SERVICE_DOES_NOT_EXIST" + // - "FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND" + // - "FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND" + // - "FABRIC_E_PARTITION_NOT_FOUND" + // - "FABRIC_E_REPLICA_DOES_NOT_EXIST" + // - "FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST" + // - "FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND" + // - "FABRIC_E_DIRECTORY_NOT_FOUND" + // - "FABRIC_E_FABRIC_VERSION_NOT_FOUND" + // - "FABRIC_E_FILE_NOT_FOUND" + // - "FABRIC_E_NAME_DOES_NOT_EXIST" + // - "FABRIC_E_PROPERTY_DOES_NOT_EXIST" + // - "FABRIC_E_ENUMERATION_COMPLETED" + // - "FABRIC_E_SERVICE_MANIFEST_NOT_FOUND" + // - "FABRIC_E_KEY_NOT_FOUND" + // - "FABRIC_E_HEALTH_ENTITY_NOT_FOUND" + // - "FABRIC_E_BACKUP_NOT_ENABLED" + // - "FABRIC_E_BACKUP_POLICY_NOT_EXISTING" + // - "FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_EXISTING" + // - "FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR" + // - Possible values of the error code for HTTP status code 409 (Conflict) + // - "FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION" + // - "FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS" + // - "FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS" + // - "FABRIC_E_SERVICE_ALREADY_EXISTS" + // - "FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS" + // - "FABRIC_E_APPLICATION_TYPE_IN_USE" + // - "FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION" + // - "FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS" + // - "FABRIC_E_FABRIC_VERSION_IN_USE" + // - "FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS" + // - "FABRIC_E_NAME_ALREADY_EXISTS" + // - "FABRIC_E_NAME_NOT_EMPTY" + // - "FABRIC_E_PROPERTY_CHECK_FAILED" + // - "FABRIC_E_SERVICE_METADATA_MISMATCH" + // - "FABRIC_E_SERVICE_TYPE_MISMATCH" + // - "FABRIC_E_HEALTH_STALE_REPORT" + // - "FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED" + // - "FABRIC_E_NODE_HAS_NOT_STOPPED_YET" + // - "FABRIC_E_INSTANCE_ID_MISMATCH" + // - "FABRIC_E_BACKUP_IN_PROGRESS" + // - "FABRIC_E_RESTORE_IN_PROGRESS" + // - "FABRIC_E_BACKUP_POLICY_ALREADY_EXISTING" + // - Possible values of the error code for HTTP status code 413 (Request Entity Too Large) + // - "FABRIC_E_VALUE_TOO_LARGE" + // - Possible values of the error code for HTTP status code 500 (Internal Server Error) + // - "FABRIC_E_NODE_IS_UP" + // - "E_FAIL" + // - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_ALREADY_EXISTS" + // - "FABRIC_E_SINGLE_INSTANCE_APPLICATION_NOT_FOUND" + // - "FABRIC_E_VOLUME_ALREADY_EXISTS" + // - "ABRIC_E_VOLUME_NOT_FOUND" + // - "SerializationError" + // - Possible values of the error code for HTTP status code 503 (Service Unavailable) + // - "FABRIC_E_NO_WRITE_QUORUM" + // - "FABRIC_E_NOT_PRIMARY" + // - "FABRIC_E_NOT_READY" + // - "FABRIC_E_RECONFIGURATION_PENDING" + // - "FABRIC_E_SERVICE_OFFLINE" + // - "E_ABORT" + // - "FABRIC_E_VALUE_TOO_LARGE" + // - Possible values of the error code for HTTP status code 504 (Gateway Timeout) + // - "FABRIC_E_COMMUNICATION_ERROR" + // - "FABRIC_E_OPERATION_NOT_COMPLETE" + // - "FABRIC_E_TIMEOUT". Possible values include: 'FABRICEINVALIDPARTITIONKEY', 'FABRICEIMAGEBUILDERVALIDATIONERROR', 'FABRICEINVALIDADDRESS', 'FABRICEAPPLICATIONNOTUPGRADING', 'FABRICEAPPLICATIONUPGRADEVALIDATIONERROR', 'FABRICEFABRICNOTUPGRADING', 'FABRICEFABRICUPGRADEVALIDATIONERROR', 'FABRICEINVALIDCONFIGURATION', 'FABRICEINVALIDNAMEURI', 'FABRICEPATHTOOLONG', 'FABRICEKEYTOOLARGE', 'FABRICESERVICEAFFINITYCHAINNOTSUPPORTED', 'FABRICEINVALIDATOMICGROUP', 'FABRICEVALUEEMPTY', 'FABRICENODENOTFOUND', 'FABRICEAPPLICATIONTYPENOTFOUND', 'FABRICEAPPLICATIONNOTFOUND', 'FABRICESERVICETYPENOTFOUND', 'FABRICESERVICEDOESNOTEXIST', 'FABRICESERVICETYPETEMPLATENOTFOUND', 'FABRICECONFIGURATIONSECTIONNOTFOUND', 'FABRICEPARTITIONNOTFOUND', 'FABRICEREPLICADOESNOTEXIST', 'FABRICESERVICEGROUPDOESNOTEXIST', 'FABRICECONFIGURATIONPARAMETERNOTFOUND', 'FABRICEDIRECTORYNOTFOUND', 'FABRICEFABRICVERSIONNOTFOUND', 'FABRICEFILENOTFOUND', 'FABRICENAMEDOESNOTEXIST', 'FABRICEPROPERTYDOESNOTEXIST', 'FABRICEENUMERATIONCOMPLETED', 'FABRICESERVICEMANIFESTNOTFOUND', 'FABRICEKEYNOTFOUND', 'FABRICEHEALTHENTITYNOTFOUND', 'FABRICEAPPLICATIONTYPEALREADYEXISTS', 'FABRICEAPPLICATIONALREADYEXISTS', 'FABRICEAPPLICATIONALREADYINTARGETVERSION', 'FABRICEAPPLICATIONTYPEPROVISIONINPROGRESS', 'FABRICEAPPLICATIONUPGRADEINPROGRESS', 'FABRICESERVICEALREADYEXISTS', 'FABRICESERVICEGROUPALREADYEXISTS', 'FABRICEAPPLICATIONTYPEINUSE', 'FABRICEFABRICALREADYINTARGETVERSION', 'FABRICEFABRICVERSIONALREADYEXISTS', 'FABRICEFABRICVERSIONINUSE', 'FABRICEFABRICUPGRADEINPROGRESS', 'FABRICENAMEALREADYEXISTS', 'FABRICENAMENOTEMPTY', 'FABRICEPROPERTYCHECKFAILED', 'FABRICESERVICEMETADATAMISMATCH', 'FABRICESERVICETYPEMISMATCH', 'FABRICEHEALTHSTALEREPORT', 'FABRICESEQUENCENUMBERCHECKFAILED', 'FABRICENODEHASNOTSTOPPEDYET', 'FABRICEINSTANCEIDMISMATCH', 'FABRICEVALUETOOLARGE', 'FABRICENOWRITEQUORUM', 'FABRICENOTPRIMARY', 'FABRICENOTREADY', 'FABRICERECONFIGURATIONPENDING', 'FABRICESERVICEOFFLINE', 'EABORT', 'FABRICECOMMUNICATIONERROR', 'FABRICEOPERATIONNOTCOMPLETE', 'FABRICETIMEOUT', 'FABRICENODEISUP', 'EFAIL', 'FABRICEBACKUPISENABLED', 'FABRICERESTORESOURCETARGETPARTITIONMISMATCH', 'FABRICEINVALIDFORSTATELESSSERVICES', 'FABRICEBACKUPNOTENABLED', 'FABRICEBACKUPPOLICYNOTEXISTING', 'FABRICEFAULTANALYSISSERVICENOTEXISTING', 'FABRICEBACKUPINPROGRESS', 'FABRICERESTOREINPROGRESS', 'FABRICEBACKUPPOLICYALREADYEXISTING', 'FABRICEINVALIDSERVICESCALINGPOLICY', 'EINVALIDARG', 'FABRICESINGLEINSTANCEAPPLICATIONALREADYEXISTS', 'FABRICESINGLEINSTANCEAPPLICATIONNOTFOUND', 'FABRICEVOLUMEALREADYEXISTS', 'FABRICEVOLUMENOTFOUND', 'SerializationError', 'FABRICEIMAGEBUILDERRESERVEDDIRECTORYERROR' + Code FabricErrorCodes `json:"Code,omitempty"` + // Message - Error message. + Message *string `json:"Message,omitempty"` +} + +// BasicFabricEvent represents the base for all Fabric Events. +type BasicFabricEvent interface { + AsApplicationEvent() (*ApplicationEvent, bool) + AsBasicApplicationEvent() (BasicApplicationEvent, bool) + AsClusterEvent() (*ClusterEvent, bool) + AsBasicClusterEvent() (BasicClusterEvent, bool) + AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) + AsNodeEvent() (*NodeEvent, bool) + AsBasicNodeEvent() (BasicNodeEvent, bool) + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) + AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) + AsPartitionEvent() (*PartitionEvent, bool) + AsBasicPartitionEvent() (BasicPartitionEvent, bool) + AsReplicaEvent() (*ReplicaEvent, bool) + AsBasicReplicaEvent() (BasicReplicaEvent, bool) + AsServiceEvent() (*ServiceEvent, bool) + AsBasicServiceEvent() (BasicServiceEvent, bool) + AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) + AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) + AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) + AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) + AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) + AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) + AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) + AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) + AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) + AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) + AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) + AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) + AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) + AsNodeAbortedEvent() (*NodeAbortedEvent, bool) + AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) + AsNodeClosedEvent() (*NodeClosedEvent, bool) + AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) + AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) + AsNodeDownEvent() (*NodeDownEvent, bool) + AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) + AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) + AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) + AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) + AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) + AsNodeUpEvent() (*NodeUpEvent, bool) + AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) + AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) + AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) + AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) + AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) + AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) + AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) + AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) + AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) + AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) + AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) + AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) + AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) + AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) + AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) + AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) + AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) + AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) + AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) + AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) + AsChaosStartedEvent() (*ChaosStartedEvent, bool) + AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) + AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) + AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) + AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) + AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) + AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) + AsFabricEvent() (*FabricEvent, bool) +} + +// FabricEvent represents the base for all Fabric Events. +type FabricEvent struct { + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicFabricEvent(body []byte) (BasicFabricEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplicationEvent): + var ae ApplicationEvent + err := json.Unmarshal(body, &ae) + return ae, err + case string(KindClusterEvent): + var ce ClusterEvent + err := json.Unmarshal(body, &ce) + return ce, err + case string(KindContainerInstanceEvent): + var cie ContainerInstanceEvent + err := json.Unmarshal(body, &cie) + return cie, err + case string(KindNodeEvent): + var ne NodeEvent + err := json.Unmarshal(body, &ne) + return ne, err + case string(KindPartitionAnalysisEvent): + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + case string(KindPartitionEvent): + var peVar PartitionEvent + err := json.Unmarshal(body, &peVar) + return peVar, err + case string(KindReplicaEvent): + var re ReplicaEvent + err := json.Unmarshal(body, &re) + return re, err + case string(KindServiceEvent): + var se ServiceEvent + err := json.Unmarshal(body, &se) + return se, err + case string(KindApplicationCreated): + var ace ApplicationCreatedEvent + err := json.Unmarshal(body, &ace) + return ace, err + case string(KindApplicationDeleted): + var ade ApplicationDeletedEvent + err := json.Unmarshal(body, &ade) + return ade, err + case string(KindApplicationNewHealthReport): + var anhre ApplicationNewHealthReportEvent + err := json.Unmarshal(body, &anhre) + return anhre, err + case string(KindApplicationHealthReportExpired): + var ahree ApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &ahree) + return ahree, err + case string(KindApplicationUpgradeCompleted): + var auce ApplicationUpgradeCompletedEvent + err := json.Unmarshal(body, &auce) + return auce, err + case string(KindApplicationUpgradeDomainCompleted): + var audce ApplicationUpgradeDomainCompletedEvent + err := json.Unmarshal(body, &audce) + return audce, err + case string(KindApplicationUpgradeRollbackCompleted): + var aurce ApplicationUpgradeRollbackCompletedEvent + err := json.Unmarshal(body, &aurce) + return aurce, err + case string(KindApplicationUpgradeRollbackStarted): + var aurse ApplicationUpgradeRollbackStartedEvent + err := json.Unmarshal(body, &aurse) + return aurse, err + case string(KindApplicationUpgradeStarted): + var ause ApplicationUpgradeStartedEvent + err := json.Unmarshal(body, &ause) + return ause, err + case string(KindDeployedApplicationNewHealthReport): + var danhre DeployedApplicationNewHealthReportEvent + err := json.Unmarshal(body, &danhre) + return danhre, err + case string(KindDeployedApplicationHealthReportExpired): + var dahree DeployedApplicationHealthReportExpiredEvent + err := json.Unmarshal(body, &dahree) + return dahree, err + case string(KindApplicationProcessExited): + var apee ApplicationProcessExitedEvent + err := json.Unmarshal(body, &apee) + return apee, err + case string(KindApplicationContainerInstanceExited): + var aciee ApplicationContainerInstanceExitedEvent + err := json.Unmarshal(body, &aciee) + return aciee, err + case string(KindNodeAborted): + var nae NodeAbortedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAddedToCluster): + var natce NodeAddedToClusterEvent + err := json.Unmarshal(body, &natce) + return natce, err + case string(KindNodeClosed): + var nce NodeClosedEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeDeactivateCompleted): + var ndce NodeDeactivateCompletedEvent + err := json.Unmarshal(body, &ndce) + return ndce, err + case string(KindNodeDeactivateStarted): + var ndse NodeDeactivateStartedEvent + err := json.Unmarshal(body, &ndse) + return ndse, err + case string(KindNodeDown): + var nde NodeDownEvent + err := json.Unmarshal(body, &nde) + return nde, err + case string(KindNodeNewHealthReport): + var nnhre NodeNewHealthReportEvent + err := json.Unmarshal(body, &nnhre) + return nnhre, err + case string(KindNodeHealthReportExpired): + var nhree NodeHealthReportExpiredEvent + err := json.Unmarshal(body, &nhree) + return nhree, err + case string(KindNodeOpenSucceeded): + var nose NodeOpenSucceededEvent + err := json.Unmarshal(body, &nose) + return nose, err + case string(KindNodeOpenFailed): + var nofe NodeOpenFailedEvent + err := json.Unmarshal(body, &nofe) + return nofe, err + case string(KindNodeRemovedFromCluster): + var nrfce NodeRemovedFromClusterEvent + err := json.Unmarshal(body, &nrfce) + return nrfce, err + case string(KindNodeUp): + var nue NodeUpEvent + err := json.Unmarshal(body, &nue) + return nue, err + case string(KindPartitionNewHealthReport): + var pnhre PartitionNewHealthReportEvent + err := json.Unmarshal(body, &pnhre) + return pnhre, err + case string(KindPartitionHealthReportExpired): + var phree PartitionHealthReportExpiredEvent + err := json.Unmarshal(body, &phree) + return phree, err + case string(KindPartitionReconfigured): + var pre PartitionReconfiguredEvent + err := json.Unmarshal(body, &pre) + return pre, err + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + case string(KindServiceCreated): + var sce ServiceCreatedEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindServiceDeleted): + var sde ServiceDeletedEvent + err := json.Unmarshal(body, &sde) + return sde, err + case string(KindServiceNewHealthReport): + var snhre ServiceNewHealthReportEvent + err := json.Unmarshal(body, &snhre) + return snhre, err + case string(KindServiceHealthReportExpired): + var shree ServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &shree) + return shree, err + case string(KindDeployedServicePackageNewHealthReport): + var dspnhre DeployedServicePackageNewHealthReportEvent + err := json.Unmarshal(body, &dspnhre) + return dspnhre, err + case string(KindDeployedServicePackageHealthReportExpired): + var dsphree DeployedServicePackageHealthReportExpiredEvent + err := json.Unmarshal(body, &dsphree) + return dsphree, err + case string(KindStatefulReplicaNewHealthReport): + var srnhre StatefulReplicaNewHealthReportEvent + err := json.Unmarshal(body, &srnhre) + return srnhre, err + case string(KindStatefulReplicaHealthReportExpired): + var srhree StatefulReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindStatelessReplicaNewHealthReport): + var srnhre StatelessReplicaNewHealthReportEvent + err := json.Unmarshal(body, &srnhre) + return srnhre, err + case string(KindStatelessReplicaHealthReportExpired): + var srhree StatelessReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindClusterNewHealthReport): + var cnhre ClusterNewHealthReportEvent + err := json.Unmarshal(body, &cnhre) + return cnhre, err + case string(KindClusterHealthReportExpired): + var chree ClusterHealthReportExpiredEvent + err := json.Unmarshal(body, &chree) + return chree, err + case string(KindClusterUpgradeCompleted): + var cuce ClusterUpgradeCompletedEvent + err := json.Unmarshal(body, &cuce) + return cuce, err + case string(KindClusterUpgradeDomainCompleted): + var cudce ClusterUpgradeDomainCompletedEvent + err := json.Unmarshal(body, &cudce) + return cudce, err + case string(KindClusterUpgradeRollbackCompleted): + var curce ClusterUpgradeRollbackCompletedEvent + err := json.Unmarshal(body, &curce) + return curce, err + case string(KindClusterUpgradeRollbackStarted): + var curse ClusterUpgradeRollbackStartedEvent + err := json.Unmarshal(body, &curse) + return curse, err + case string(KindClusterUpgradeStarted): + var cuse ClusterUpgradeStartedEvent + err := json.Unmarshal(body, &cuse) + return cuse, err + case string(KindChaosStopped): + var cse ChaosStoppedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosStarted): + var cse ChaosStartedEvent + err := json.Unmarshal(body, &cse) + return cse, err + case string(KindChaosCodePackageRestartScheduled): + var ccprse ChaosCodePackageRestartScheduledEvent + err := json.Unmarshal(body, &ccprse) + return ccprse, err + case string(KindChaosReplicaRemovalScheduled): + var crrse ChaosReplicaRemovalScheduledEvent + err := json.Unmarshal(body, &crrse) + return crrse, err + case string(KindChaosPartitionSecondaryMoveScheduled): + var cpsmse ChaosPartitionSecondaryMoveScheduledEvent + err := json.Unmarshal(body, &cpsmse) + return cpsmse, err + case string(KindChaosPartitionPrimaryMoveScheduled): + var cppmse ChaosPartitionPrimaryMoveScheduledEvent + err := json.Unmarshal(body, &cppmse) + return cppmse, err + case string(KindChaosReplicaRestartScheduled): + var crrse ChaosReplicaRestartScheduledEvent + err := json.Unmarshal(body, &crrse) + return crrse, err + case string(KindChaosNodeRestartScheduled): + var cnrse ChaosNodeRestartScheduledEvent + err := json.Unmarshal(body, &cnrse) + return cnrse, err + default: + var fe FabricEvent + err := json.Unmarshal(body, &fe) + return fe, err + } +} +func unmarshalBasicFabricEventArray(body []byte) ([]BasicFabricEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + feArray := make([]BasicFabricEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + fe, err := unmarshalBasicFabricEvent(*rawMessage) + if err != nil { + return nil, err + } + feArray[index] = fe + } + return feArray, nil +} + +// MarshalJSON is the custom marshaler for FabricEvent. +func (fe FabricEvent) MarshalJSON() ([]byte, error) { + fe.Kind = KindFabricEvent + objectMap := make(map[string]interface{}) + if fe.EventInstanceID != nil { + objectMap["EventInstanceId"] = fe.EventInstanceID + } + if fe.Category != nil { + objectMap["Category"] = fe.Category + } + if fe.TimeStamp != nil { + objectMap["TimeStamp"] = fe.TimeStamp + } + if fe.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = fe.HasCorrelatedEvents + } + if fe.Kind != "" { + objectMap["Kind"] = fe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsFabricEvent() (*FabricEvent, bool) { + return &fe, true +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for FabricEvent. +func (fe FabricEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &fe, true +} + +// FailedPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch failing. Contains +// information about the specific batch failure. +type FailedPropertyBatchInfo struct { + // ErrorMessage - The error message of the failed operation. Describes the exception thrown due to the first unsuccessful operation in the property batch. + ErrorMessage *string `json:"ErrorMessage,omitempty"` + // OperationIndex - The index of the unsuccessful operation in the property batch. + OperationIndex *int32 `json:"OperationIndex,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) MarshalJSON() ([]byte, error) { + fpbi.Kind = KindFailed + objectMap := make(map[string]interface{}) + if fpbi.ErrorMessage != nil { + objectMap["ErrorMessage"] = fpbi.ErrorMessage + } + if fpbi.OperationIndex != nil { + objectMap["OperationIndex"] = fpbi.OperationIndex + } + if fpbi.Kind != "" { + objectMap["Kind"] = fpbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return nil, false +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return &fpbi, true +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return nil, false +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for FailedPropertyBatchInfo. +func (fpbi FailedPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &fpbi, true +} + +// FailedUpgradeDomainProgressObject the detailed upgrade progress for nodes in the current upgrade domain +// at the point of failure. +type FailedUpgradeDomainProgressObject struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// FailureUpgradeDomainProgressInfo information about the upgrade domain progress at the time of upgrade +// failure. +type FailureUpgradeDomainProgressInfo struct { + // DomainName - The name of the upgrade domain + DomainName *string `json:"DomainName,omitempty"` + // NodeUpgradeProgressList - List of upgrading nodes and their statuses + NodeUpgradeProgressList *[]NodeUpgradeProgressInfo `json:"NodeUpgradeProgressList,omitempty"` +} + +// FileInfo information about a image store file. +type FileInfo struct { + // FileSize - The size of file in bytes. + FileSize *string `json:"FileSize,omitempty"` + // FileVersion - Information about the version of image store file. + FileVersion *FileVersion `json:"FileVersion,omitempty"` + // ModifiedDate - The date and time when the image store file was last modified. + ModifiedDate *date.Time `json:"ModifiedDate,omitempty"` + // StoreRelativePath - The file path relative to the image store root path. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` +} + +// FileShareBackupStorageDescription describes the parameters for file share storage used for storing or +// enumerating backups. +type FileShareBackupStorageDescription struct { + // Path - UNC path of the file share where to store or enumerate backups from. + Path *string `json:"Path,omitempty"` + // PrimaryUserName - Primary user name to access the file share. + PrimaryUserName *string `json:"PrimaryUserName,omitempty"` + // PrimaryPassword - Primary password to access the share location. + PrimaryPassword *string `json:"PrimaryPassword,omitempty"` + // SecondaryUserName - Secondary user name to access the file share. + SecondaryUserName *string `json:"SecondaryUserName,omitempty"` + // SecondaryPassword - Secondary password to access the share location + SecondaryPassword *string `json:"SecondaryPassword,omitempty"` + // FriendlyName - Friendly name for this backup storage. + FriendlyName *string `json:"FriendlyName,omitempty"` + // StorageKind - Possible values include: 'StorageKindBackupStorageDescription', 'StorageKindAzureBlobStore', 'StorageKindFileShare' + StorageKind StorageKind `json:"StorageKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) MarshalJSON() ([]byte, error) { + fsbsd.StorageKind = StorageKindFileShare + objectMap := make(map[string]interface{}) + if fsbsd.Path != nil { + objectMap["Path"] = fsbsd.Path + } + if fsbsd.PrimaryUserName != nil { + objectMap["PrimaryUserName"] = fsbsd.PrimaryUserName + } + if fsbsd.PrimaryPassword != nil { + objectMap["PrimaryPassword"] = fsbsd.PrimaryPassword + } + if fsbsd.SecondaryUserName != nil { + objectMap["SecondaryUserName"] = fsbsd.SecondaryUserName + } + if fsbsd.SecondaryPassword != nil { + objectMap["SecondaryPassword"] = fsbsd.SecondaryPassword + } + if fsbsd.FriendlyName != nil { + objectMap["FriendlyName"] = fsbsd.FriendlyName + } + if fsbsd.StorageKind != "" { + objectMap["StorageKind"] = fsbsd.StorageKind + } + return json.Marshal(objectMap) +} + +// AsAzureBlobBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsAzureBlobBackupStorageDescription() (*AzureBlobBackupStorageDescription, bool) { + return nil, false +} + +// AsFileShareBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsFileShareBackupStorageDescription() (*FileShareBackupStorageDescription, bool) { + return &fsbsd, true +} + +// AsBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsBackupStorageDescription() (*BackupStorageDescription, bool) { + return nil, false +} + +// AsBasicBackupStorageDescription is the BasicBackupStorageDescription implementation for FileShareBackupStorageDescription. +func (fsbsd FileShareBackupStorageDescription) AsBasicBackupStorageDescription() (BasicBackupStorageDescription, bool) { + return &fsbsd, true +} + +// FileVersion information about the version of image store file. +type FileVersion struct { + // VersionNumber - The current image store version number for the file is used in image store for checking whether it need to be updated. + VersionNumber *string `json:"VersionNumber,omitempty"` + // EpochDataLossNumber - The epoch data loss number of image store replica when this file entry was updated or created. + EpochDataLossNumber *string `json:"EpochDataLossNumber,omitempty"` + // EpochConfigurationNumber - The epoch configuration version number of the image store replica when this file entry was created or updated. + EpochConfigurationNumber *string `json:"EpochConfigurationNumber,omitempty"` +} + +// FolderInfo information about a image store folder. It includes how many files this folder contains and +// its image store relative path. +type FolderInfo struct { + // StoreRelativePath - The remote location within image store. This path is relative to the image store root. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` + // FileCount - The number of files from within the image store folder. + FileCount *string `json:"FileCount,omitempty"` +} + +// FrequencyBasedBackupScheduleDescription describes the frequency based backup schedule. +type FrequencyBasedBackupScheduleDescription struct { + // Interval - Defines the interval with which backups are periodically taken. It should be specified in ISO8601 format. Timespan in seconds is not supported and will be ignored while creating the policy. + Interval *string `json:"Interval,omitempty"` + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) { + fbbsd.ScheduleKind = ScheduleKindFrequencyBased + objectMap := make(map[string]interface{}) + if fbbsd.Interval != nil { + objectMap["Interval"] = fbbsd.Interval + } + if fbbsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = fbbsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return &fbbsd, true +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return nil, false +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for FrequencyBasedBackupScheduleDescription. +func (fbbsd FrequencyBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &fbbsd, true +} + +// GatewayDestination describes destination endpoint for routing traffic. +type GatewayDestination struct { + // ApplicationName - Name of the service fabric Mesh application. + ApplicationName *string `json:"applicationName,omitempty"` + // ServiceName - service that contains the endpoint. + ServiceName *string `json:"serviceName,omitempty"` + // EndpointName - name of the endpoint in the service. + EndpointName *string `json:"endpointName,omitempty"` +} + +// GatewayProperties describes properties of a gateway resource. +type GatewayProperties struct { + // Description - User readable description of the gateway. + Description *string `json:"description,omitempty"` + // SourceNetwork - Network the gateway should listen on for requests. + SourceNetwork *NetworkRef `json:"sourceNetwork,omitempty"` + // DestinationNetwork - Network that the Application is using. + DestinationNetwork *NetworkRef `json:"destinationNetwork,omitempty"` + // TCP - Configuration for tcp connectivity for this gateway. + TCP *[]TCPConfig `json:"tcp,omitempty"` + // HTTP - Configuration for http connectivity for this gateway. + HTTP *[]HTTPConfig `json:"http,omitempty"` + // Status - Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the gateway. + StatusDetails *string `json:"statusDetails,omitempty"` + // IPAddress - IP address of the gateway. This is populated in the response and is ignored for incoming requests. + IPAddress *string `json:"ipAddress,omitempty"` +} + +// GatewayResourceDescription this type describes a gateway resource. +type GatewayResourceDescription struct { + autorest.Response `json:"-"` + // Name - Name of the Gateway resource. + Name *string `json:"name,omitempty"` + // GatewayProperties - Describes properties of a gateway resource. + *GatewayProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for GatewayResourceDescription. +func (grd GatewayResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if grd.Name != nil { + objectMap["name"] = grd.Name + } + if grd.GatewayProperties != nil { + objectMap["properties"] = grd.GatewayProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for GatewayResourceDescription struct. +func (grd *GatewayResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + grd.Name = &name + } + case "properties": + if v != nil { + var gatewayProperties GatewayProperties + err = json.Unmarshal(*v, &gatewayProperties) + if err != nil { + return err + } + grd.GatewayProperties = &gatewayProperties + } + } + } + + return nil +} + +// GetBackupByStorageQueryDescription describes additional filters to be applied, while listing backups, +// and backup storage details from where to fetch the backups. +type GetBackupByStorageQueryDescription struct { + // StartDateTimeFilter - Specifies the start date time in ISO8601 from which to enumerate backups. If not specified, backups are enumerated from the beginning. + StartDateTimeFilter *date.Time `json:"StartDateTimeFilter,omitempty"` + // EndDateTimeFilter - Specifies the end date time in ISO8601 till which to enumerate backups. If not specified, backups are enumerated till the end. + EndDateTimeFilter *date.Time `json:"EndDateTimeFilter,omitempty"` + // Latest - If specified as true, gets the most recent backup (within the specified time range) for every partition under the specified backup entity. + Latest *bool `json:"Latest,omitempty"` + // Storage - Describes the parameters for the backup storage from where to enumerate backups. This is optional and by default backups are enumerated from the backup storage where this backup entity is currently being backed up (as specified in backup policy). This parameter is useful to be able to enumerate backups from another cluster where you may intend to restore. + Storage BasicBackupStorageDescription `json:"Storage,omitempty"` + // BackupEntity - Indicates the entity for which to enumerate backups. + BackupEntity BasicBackupEntity `json:"BackupEntity,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for GetBackupByStorageQueryDescription struct. +func (gbbsqd *GetBackupByStorageQueryDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "StartDateTimeFilter": + if v != nil { + var startDateTimeFilter date.Time + err = json.Unmarshal(*v, &startDateTimeFilter) + if err != nil { + return err + } + gbbsqd.StartDateTimeFilter = &startDateTimeFilter + } + case "EndDateTimeFilter": + if v != nil { + var endDateTimeFilter date.Time + err = json.Unmarshal(*v, &endDateTimeFilter) + if err != nil { + return err + } + gbbsqd.EndDateTimeFilter = &endDateTimeFilter + } + case "Latest": + if v != nil { + var latest bool + err = json.Unmarshal(*v, &latest) + if err != nil { + return err + } + gbbsqd.Latest = &latest + } + case "Storage": + if v != nil { + storage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + gbbsqd.Storage = storage + } + case "BackupEntity": + if v != nil { + backupEntity, err := unmarshalBasicBackupEntity(*v) + if err != nil { + return err + } + gbbsqd.BackupEntity = backupEntity + } + } + } + + return nil +} + +// GetPropertyBatchOperation represents a PropertyBatchOperation that gets the specified property if it +// exists. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type GetPropertyBatchOperation struct { + // IncludeValue - Whether or not to return the property value with the metadata. + // True if values should be returned with the metadata; False to return only property metadata. + IncludeValue *bool `json:"IncludeValue,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) MarshalJSON() ([]byte, error) { + gpbo.Kind = KindGet + objectMap := make(map[string]interface{}) + if gpbo.IncludeValue != nil { + objectMap["IncludeValue"] = gpbo.IncludeValue + } + if gpbo.PropertyName != nil { + objectMap["PropertyName"] = gpbo.PropertyName + } + if gpbo.Kind != "" { + objectMap["Kind"] = gpbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return &gpbo, true +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for GetPropertyBatchOperation. +func (gpbo GetPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &gpbo, true +} + +// GUIDPropertyValue describes a Service Fabric property value of type Guid. +type GUIDPropertyValue struct { + // Data - The data of the property value. + Data *uuid.UUID `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for GUIDPropertyValue. +func (gpv GUIDPropertyValue) MarshalJSON() ([]byte, error) { + gpv.Kind = KindGUID + objectMap := make(map[string]interface{}) + if gpv.Data != nil { + objectMap["Data"] = gpv.Data + } + if gpv.Kind != "" { + objectMap["Kind"] = gpv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return &gpv, true +} + +// AsPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for GUIDPropertyValue. +func (gpv GUIDPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &gpv, true +} + +// BasicHealthEvaluation represents a health evaluation which describes the data and the algorithm used by health +// manager to evaluate the health of an entity. +type BasicHealthEvaluation interface { + AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) + AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) + AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) + AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) + AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) + AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) + AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) + AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) + AsEventHealthEvaluation() (*EventHealthEvaluation, bool) + AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) + AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) + AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) + AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) + AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) + AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) + AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) + AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) + AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) + AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) + AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) + AsHealthEvaluation() (*HealthEvaluation, bool) +} + +// HealthEvaluation represents a health evaluation which describes the data and the algorithm used by health +// manager to evaluate the health of an entity. +type HealthEvaluation struct { + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +func unmarshalBasicHealthEvaluation(body []byte) (BasicHealthEvaluation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindApplication): + var ahe ApplicationHealthEvaluation + err := json.Unmarshal(body, &ahe) + return ahe, err + case string(KindApplications): + var ahe ApplicationsHealthEvaluation + err := json.Unmarshal(body, &ahe) + return ahe, err + case string(KindApplicationTypeApplications): + var atahe ApplicationTypeApplicationsHealthEvaluation + err := json.Unmarshal(body, &atahe) + return atahe, err + case string(KindDeltaNodesCheck): + var dnche DeltaNodesCheckHealthEvaluation + err := json.Unmarshal(body, &dnche) + return dnche, err + case string(KindDeployedApplication): + var dahe DeployedApplicationHealthEvaluation + err := json.Unmarshal(body, &dahe) + return dahe, err + case string(KindDeployedApplications): + var dahe DeployedApplicationsHealthEvaluation + err := json.Unmarshal(body, &dahe) + return dahe, err + case string(KindDeployedServicePackage): + var dsphe DeployedServicePackageHealthEvaluation + err := json.Unmarshal(body, &dsphe) + return dsphe, err + case string(KindDeployedServicePackages): + var dsphe DeployedServicePackagesHealthEvaluation + err := json.Unmarshal(body, &dsphe) + return dsphe, err + case string(KindEvent): + var ehe EventHealthEvaluation + err := json.Unmarshal(body, &ehe) + return ehe, err + case string(KindNode): + var nhe NodeHealthEvaluation + err := json.Unmarshal(body, &nhe) + return nhe, err + case string(KindNodes): + var nhe NodesHealthEvaluation + err := json.Unmarshal(body, &nhe) + return nhe, err + case string(KindPartition): + var phe PartitionHealthEvaluation + err := json.Unmarshal(body, &phe) + return phe, err + case string(KindPartitions): + var phe PartitionsHealthEvaluation + err := json.Unmarshal(body, &phe) + return phe, err + case string(KindReplica): + var rhe ReplicaHealthEvaluation + err := json.Unmarshal(body, &rhe) + return rhe, err + case string(KindReplicas): + var rhe ReplicasHealthEvaluation + err := json.Unmarshal(body, &rhe) + return rhe, err + case string(KindService): + var she ServiceHealthEvaluation + err := json.Unmarshal(body, &she) + return she, err + case string(KindServices): + var she ServicesHealthEvaluation + err := json.Unmarshal(body, &she) + return she, err + case string(KindSystemApplication): + var sahe SystemApplicationHealthEvaluation + err := json.Unmarshal(body, &sahe) + return sahe, err + case string(KindUpgradeDomainDeltaNodesCheck): + var uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation + err := json.Unmarshal(body, &uddnche) + return uddnche, err + case string(KindUpgradeDomainNodes): + var udnhe UpgradeDomainNodesHealthEvaluation + err := json.Unmarshal(body, &udnhe) + return udnhe, err + default: + var he HealthEvaluation + err := json.Unmarshal(body, &he) + return he, err + } +} +func unmarshalBasicHealthEvaluationArray(body []byte) ([]BasicHealthEvaluation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + heArray := make([]BasicHealthEvaluation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + he, err := unmarshalBasicHealthEvaluation(*rawMessage) + if err != nil { + return nil, err + } + heArray[index] = he + } + return heArray, nil +} + +// MarshalJSON is the custom marshaler for HealthEvaluation. +func (he HealthEvaluation) MarshalJSON() ([]byte, error) { + he.Kind = KindHealthEvaluation + objectMap := make(map[string]interface{}) + if he.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = he.AggregatedHealthState + } + if he.Description != nil { + objectMap["Description"] = he.Description + } + if he.Kind != "" { + objectMap["Kind"] = he.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return &he, true +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for HealthEvaluation. +func (he HealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &he, true +} + +// HealthEvaluationWrapper wrapper object for health evaluation. +type HealthEvaluationWrapper struct { + // HealthEvaluation - Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity. + HealthEvaluation BasicHealthEvaluation `json:"HealthEvaluation,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for HealthEvaluationWrapper struct. +func (hew *HealthEvaluationWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HealthEvaluation": + if v != nil { + healthEvaluation, err := unmarshalBasicHealthEvaluation(*v) + if err != nil { + return err + } + hew.HealthEvaluation = healthEvaluation + } + } + } + + return nil +} + +// HealthEvent represents health information reported on a health entity, such as cluster, application or +// node, with additional metadata added by the Health Manager. +type HealthEvent struct { + // IsExpired - Returns true if the health event is expired, otherwise false. + IsExpired *bool `json:"IsExpired,omitempty"` + // SourceUtcTimestamp - The date and time when the health report was sent by the source. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // LastModifiedUtcTimestamp - The date and time when the health report was last modified by the health store. + LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"` + // LastOkTransitionAt - If the current health state is 'Ok', this property returns the time at which the health report was first reported with 'Ok'. + // For periodic reporting, many reports with the same state may have been generated. + // This property returns the date and time when the first 'Ok' health report was received. + // If the current health state is 'Error' or 'Warning', returns the date and time at which the health state was last in 'Ok', before transitioning to a different state. + // If the health state was never 'Ok', the value will be zero date-time. + LastOkTransitionAt *date.Time `json:"LastOkTransitionAt,omitempty"` + // LastWarningTransitionAt - If the current health state is 'Warning', this property returns the time at which the health report was first reported with 'Warning'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Warning' health report was received. + // If the current health state is 'Ok' or 'Error', returns the date and time at which the health state was last in 'Warning', before transitioning to a different state. + // If the health state was never 'Warning', the value will be zero date-time. + LastWarningTransitionAt *date.Time `json:"LastWarningTransitionAt,omitempty"` + // LastErrorTransitionAt - If the current health state is 'Error', this property returns the time at which the health report was first reported with 'Error'. For periodic reporting, many reports with the same state may have been generated however, this property returns only the date and time at the first 'Error' health report was received. + // If the current health state is 'Ok' or 'Warning', returns the date and time at which the health state was last in 'Error', before transitioning to a different state. + // If the health state was never 'Error', the value will be zero date-time. + LastErrorTransitionAt *date.Time `json:"LastErrorTransitionAt,omitempty"` + // SourceID - The source name that identifies the client/watchdog/system component that generated the health information. + SourceID *string `json:"SourceId,omitempty"` + // Property - The property of the health information. An entity can have health reports for different properties. + // The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report. + // For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node, + // so it can report "AvailableDisk" property on that node. + // The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node. + // In the health store, these reports are treated as separate health events for the specified node. + // Together with the SourceId, the property uniquely identifies the health information. + Property *string `json:"Property,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration. + // When clients report periodically, they should send reports with higher frequency than time to live. + // If clients report on transition, they can set the time to live to infinite. + // When time to live expires, the health event that contains the health information + // is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false. + // If not specified, time to live defaults to infinite value. + TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"` + // Description - The description of the health information. It represents free text used to add human readable information about the report. + // The maximum string length for the description is 4096 characters. + // If the provided string is longer, it will be automatically truncated. + // When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters. + // The presence of the marker indicates to users that truncation occurred. + // Note that when truncated, the description has less than 4096 characters from the original string. + Description *string `json:"Description,omitempty"` + // SequenceNumber - The sequence number for this health report as a numeric string. + // The report sequence number is used by the health store to detect stale reports. + // If not specified, a sequence number is auto-generated by the health client when a report is added. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires. + // If set to true, the report is removed from the health store after it expires. + // If set to false, the report is treated as an error when expired. The value of this property is false by default. + // When clients report periodically, they should set RemoveWhenExpired false (default). + // This way, if the reporter has issues (e.g. deadlock) and can't report, the entity is evaluated at error when the health report expires. + // This flags the entity as being in Error health state. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` +} + +// HealthInformation represents common health report information. It is included in all health reports sent +// to health store and in all health events returned by health queries. +type HealthInformation struct { + // SourceID - The source name that identifies the client/watchdog/system component that generated the health information. + SourceID *string `json:"SourceId,omitempty"` + // Property - The property of the health information. An entity can have health reports for different properties. + // The property is a string and not a fixed enumeration to allow the reporter flexibility to categorize the state condition that triggers the report. + // For example, a reporter with SourceId "LocalWatchdog" can monitor the state of the available disk on a node, + // so it can report "AvailableDisk" property on that node. + // The same reporter can monitor the node connectivity, so it can report a property "Connectivity" on the same node. + // In the health store, these reports are treated as separate health events for the specified node. + // Together with the SourceId, the property uniquely identifies the health information. + Property *string `json:"Property,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // TimeToLiveInMilliSeconds - The duration for which this health report is valid. This field uses ISO8601 format for specifying the duration. + // When clients report periodically, they should send reports with higher frequency than time to live. + // If clients report on transition, they can set the time to live to infinite. + // When time to live expires, the health event that contains the health information + // is either removed from health store, if RemoveWhenExpired is true, or evaluated at error, if RemoveWhenExpired false. + // If not specified, time to live defaults to infinite value. + TimeToLiveInMilliSeconds *string `json:"TimeToLiveInMilliSeconds,omitempty"` + // Description - The description of the health information. It represents free text used to add human readable information about the report. + // The maximum string length for the description is 4096 characters. + // If the provided string is longer, it will be automatically truncated. + // When truncated, the last characters of the description contain a marker "[Truncated]", and total string size is 4096 characters. + // The presence of the marker indicates to users that truncation occurred. + // Note that when truncated, the description has less than 4096 characters from the original string. + Description *string `json:"Description,omitempty"` + // SequenceNumber - The sequence number for this health report as a numeric string. + // The report sequence number is used by the health store to detect stale reports. + // If not specified, a sequence number is auto-generated by the health client when a report is added. + SequenceNumber *string `json:"SequenceNumber,omitempty"` + // RemoveWhenExpired - Value that indicates whether the report is removed from health store when it expires. + // If set to true, the report is removed from the health store after it expires. + // If set to false, the report is treated as an error when expired. The value of this property is false by default. + // When clients report periodically, they should set RemoveWhenExpired false (default). + // This way, if the reporter has issues (e.g. deadlock) and can't report, the entity is evaluated at error when the health report expires. + // This flags the entity as being in Error health state. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` +} + +// HealthStateCount represents information about how many health entities are in Ok, Warning and Error +// health state. +type HealthStateCount struct { + // OkCount - The number of health entities with aggregated health state Ok. + OkCount *int64 `json:"OkCount,omitempty"` + // WarningCount - The number of health entities with aggregated health state Warning. + WarningCount *int64 `json:"WarningCount,omitempty"` + // ErrorCount - The number of health entities with aggregated health state Error. + ErrorCount *int64 `json:"ErrorCount,omitempty"` +} + +// HealthStatistics the health statistics of an entity, returned as part of the health query result when +// the query description is configured to include statistics. +// The statistics include health state counts for all children types of the current entity. +// For example, for cluster, the health statistics include health state counts for nodes, applications, +// services, partitions, replicas, deployed applications and deployed service packages. +// For partition, the health statistics include health counts for replicas. +type HealthStatistics struct { + // HealthStateCountList - List of health state counts per entity kind, which keeps track of how many children of the queried entity are in Ok, Warning and Error state. + HealthStateCountList *[]EntityKindHealthStateCount `json:"HealthStateCountList,omitempty"` +} + +// HTTPConfig describes the http configuration for external connectivity for this network. +type HTTPConfig struct { + // Name - http gateway config name. + Name *string `json:"name,omitempty"` + // Port - Specifies the port at which the service endpoint below needs to be exposed. + Port *int32 `json:"port,omitempty"` + // Hosts - description for routing. + Hosts *[]HTTPHostConfig `json:"hosts,omitempty"` +} + +// HTTPHostConfig describes the hostname properties for http routing. +type HTTPHostConfig struct { + // Name - http hostname config name. + Name *string `json:"name,omitempty"` + // Routes - Route information to use for routing. Routes are processed in the order they are specified. Specify routes that are more specific before routes that can hamdle general cases. + Routes *[]HTTPRouteConfig `json:"routes,omitempty"` +} + +// HTTPRouteConfig describes the hostname properties for http routing. +type HTTPRouteConfig struct { + // Name - http route name. + Name *string `json:"name,omitempty"` + // Match - Describes a rule for http route matching. + Match *HTTPRouteMatchRule `json:"match,omitempty"` + // Destination - Describes destination endpoint for routing traffic. + Destination *GatewayDestination `json:"destination,omitempty"` +} + +// HTTPRouteMatchHeader describes header information for http route matching. +type HTTPRouteMatchHeader struct { + // Name - Name of header to match in request. + Name *string `json:"name,omitempty"` + // Value - Value of header to match in request. + Value *string `json:"value,omitempty"` + // Type - how to match header value. Possible values include: 'Exact' + Type HeaderMatchType `json:"type,omitempty"` +} + +// HTTPRouteMatchPath path to match for routing. +type HTTPRouteMatchPath struct { + // Value - Uri path to match for request. + Value *string `json:"value,omitempty"` + // Rewrite - replacement string for matched part of the Uri. + Rewrite *string `json:"rewrite,omitempty"` + // Type - how to match value in the Uri + Type *string `json:"type,omitempty"` +} + +// HTTPRouteMatchRule describes a rule for http route matching. +type HTTPRouteMatchRule struct { + // Path - Path to match for routing. + Path *HTTPRouteMatchPath `json:"path,omitempty"` + // Headers - headers and their values to match in request. + Headers *[]HTTPRouteMatchHeader `json:"headers,omitempty"` +} + +// ImageRegistryCredential image registry credential. +type ImageRegistryCredential struct { + // Server - Docker image registry server, without protocol such as `http` and `https`. + Server *string `json:"server,omitempty"` + // Username - The username for the private registry. + Username *string `json:"username,omitempty"` + // Password - The password for the private registry. The password is required for create or update operations, however it is not returned in the get or list operations. + Password *string `json:"password,omitempty"` +} + +// ImageStoreContent information about the image store content. +type ImageStoreContent struct { + autorest.Response `json:"-"` + // StoreFiles - The list of image store file info objects represents files found under the given image store relative path. + StoreFiles *[]FileInfo `json:"StoreFiles,omitempty"` + // StoreFolders - The list of image store folder info objects represents subfolders found under the given image store relative path. + StoreFolders *[]FolderInfo `json:"StoreFolders,omitempty"` +} + +// ImageStoreCopyDescription information about how to copy image store content from one image store +// relative path to another image store relative path. +type ImageStoreCopyDescription struct { + // RemoteSource - The relative path of source image store content to be copied from. + RemoteSource *string `json:"RemoteSource,omitempty"` + // RemoteDestination - The relative path of destination image store content to be copied to. + RemoteDestination *string `json:"RemoteDestination,omitempty"` + // SkipFiles - The list of the file names to be skipped for copying. + SkipFiles *[]string `json:"SkipFiles,omitempty"` + // CheckMarkFile - Indicates whether to check mark file during copying. The property is true if checking mark file is required, false otherwise. The mark file is used to check whether the folder is well constructed. If the property is true and mark file does not exist, the copy is skipped. + CheckMarkFile *bool `json:"CheckMarkFile,omitempty"` +} + +// InlinedValueSecretResourceProperties describes the properties of a secret resource whose value is +// provided explicitly as plaintext. The secret resource may have multiple values, each being uniquely +// versioned. The secret value of each version is stored encrypted, and delivered as plaintext into the +// context of applications referencing it. +type InlinedValueSecretResourceProperties struct { + // Description - User readable description of the secret. + Description *string `json:"description,omitempty"` + // Status - Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the secret. + StatusDetails *string `json:"statusDetails,omitempty"` + // ContentType - The type of the content stored in the secret value. The value of this property is opaque to Service Fabric. Once set, the value of this property cannot be changed. + ContentType *string `json:"contentType,omitempty"` + // Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue' + Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) MarshalJSON() ([]byte, error) { + ivsrp.Kind = KindInlinedValue + objectMap := make(map[string]interface{}) + if ivsrp.Description != nil { + objectMap["description"] = ivsrp.Description + } + if ivsrp.Status != "" { + objectMap["status"] = ivsrp.Status + } + if ivsrp.StatusDetails != nil { + objectMap["statusDetails"] = ivsrp.StatusDetails + } + if ivsrp.ContentType != nil { + objectMap["contentType"] = ivsrp.ContentType + } + if ivsrp.Kind != "" { + objectMap["kind"] = ivsrp.Kind + } + return json.Marshal(objectMap) +} + +// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) { + return nil, false +} + +// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) { + return &ivsrp, true +} + +// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) { + return &ivsrp, true +} + +// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) { + return nil, false +} + +// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for InlinedValueSecretResourceProperties. +func (ivsrp InlinedValueSecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) { + return &ivsrp, true +} + +// Int64PropertyValue describes a Service Fabric property value of type Int64. +type Int64PropertyValue struct { + // Data - The data of the property value. + Data *string `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for Int64PropertyValue. +func (i6pv Int64PropertyValue) MarshalJSON() ([]byte, error) { + i6pv.Kind = KindInt64 + objectMap := make(map[string]interface{}) + if i6pv.Data != nil { + objectMap["Data"] = i6pv.Data + } + if i6pv.Kind != "" { + objectMap["Kind"] = i6pv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return &i6pv, true +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for Int64PropertyValue. +func (i6pv Int64PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &i6pv, true +} + +// Int64RangePartitionInformation describes the partition information for the integer range that is based +// on partition schemes. +type Int64RangePartitionInformation struct { + // LowKey - Specifies the minimum key value handled by this partition. + LowKey *string `json:"LowKey,omitempty"` + // HighKey - Specifies the maximum key value handled by this partition. + HighKey *string `json:"HighKey,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) MarshalJSON() ([]byte, error) { + i6rpi.ServicePartitionKind = ServicePartitionKindInt64Range1 + objectMap := make(map[string]interface{}) + if i6rpi.LowKey != nil { + objectMap["LowKey"] = i6rpi.LowKey + } + if i6rpi.HighKey != nil { + objectMap["HighKey"] = i6rpi.HighKey + } + if i6rpi.ID != nil { + objectMap["Id"] = i6rpi.ID + } + if i6rpi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = i6rpi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return &i6rpi, true +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for Int64RangePartitionInformation. +func (i6rpi Int64RangePartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &i6rpi, true +} + +// InvokeDataLossResult represents information about an operation in a terminal state (Completed or +// Faulted). +type InvokeDataLossResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// InvokeQuorumLossResult represents information about an operation in a terminal state (Completed or +// Faulted). +type InvokeQuorumLossResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// KeyValueStoreReplicaStatus key value store related information for the replica. +type KeyValueStoreReplicaStatus struct { + // DatabaseRowCountEstimate - Value indicating the estimated number of rows in the underlying database. + DatabaseRowCountEstimate *string `json:"DatabaseRowCountEstimate,omitempty"` + // DatabaseLogicalSizeEstimate - Value indicating the estimated size of the underlying database. + DatabaseLogicalSizeEstimate *string `json:"DatabaseLogicalSizeEstimate,omitempty"` + // CopyNotificationCurrentKeyFilter - Value indicating the latest key-prefix filter applied to enumeration during the callback. Null if there is no pending callback. + CopyNotificationCurrentKeyFilter *string `json:"CopyNotificationCurrentKeyFilter,omitempty"` + // CopyNotificationCurrentProgress - Value indicating the latest number of keys enumerated during the callback. 0 if there is no pending callback. + CopyNotificationCurrentProgress *string `json:"CopyNotificationCurrentProgress,omitempty"` + // StatusDetails - Value indicating the current status details of the replica. + StatusDetails *string `json:"StatusDetails,omitempty"` + // Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore' + Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) MarshalJSON() ([]byte, error) { + kvsrs.Kind = KindKeyValueStore + objectMap := make(map[string]interface{}) + if kvsrs.DatabaseRowCountEstimate != nil { + objectMap["DatabaseRowCountEstimate"] = kvsrs.DatabaseRowCountEstimate + } + if kvsrs.DatabaseLogicalSizeEstimate != nil { + objectMap["DatabaseLogicalSizeEstimate"] = kvsrs.DatabaseLogicalSizeEstimate + } + if kvsrs.CopyNotificationCurrentKeyFilter != nil { + objectMap["CopyNotificationCurrentKeyFilter"] = kvsrs.CopyNotificationCurrentKeyFilter + } + if kvsrs.CopyNotificationCurrentProgress != nil { + objectMap["CopyNotificationCurrentProgress"] = kvsrs.CopyNotificationCurrentProgress + } + if kvsrs.StatusDetails != nil { + objectMap["StatusDetails"] = kvsrs.StatusDetails + } + if kvsrs.Kind != "" { + objectMap["Kind"] = kvsrs.Kind + } + return json.Marshal(objectMap) +} + +// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) { + return &kvsrs, true +} + +// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsReplicaStatusBase() (*ReplicaStatusBase, bool) { + return nil, false +} + +// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for KeyValueStoreReplicaStatus. +func (kvsrs KeyValueStoreReplicaStatus) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) { + return &kvsrs, true +} + +// ListApplicationEvent ... +type ListApplicationEvent struct { + autorest.Response `json:"-"` + Value *[]BasicApplicationEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListApplicationEvent struct. +func (lae *ListApplicationEvent) UnmarshalJSON(body []byte) error { + ae, err := unmarshalBasicApplicationEventArray(body) + if err != nil { + return err + } + lae.Value = &ae + + return nil +} + +// ListClusterEvent ... +type ListClusterEvent struct { + autorest.Response `json:"-"` + Value *[]BasicClusterEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListClusterEvent struct. +func (lce *ListClusterEvent) UnmarshalJSON(body []byte) error { + ce, err := unmarshalBasicClusterEventArray(body) + if err != nil { + return err + } + lce.Value = &ce + + return nil +} + +// ListContainerInstanceEvent ... +type ListContainerInstanceEvent struct { + autorest.Response `json:"-"` + Value *[]ContainerInstanceEvent `json:"value,omitempty"` +} + +// ListDeployedCodePackageInfo ... +type ListDeployedCodePackageInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedCodePackageInfo `json:"value,omitempty"` +} + +// ListDeployedServicePackageInfo ... +type ListDeployedServicePackageInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedServicePackageInfo `json:"value,omitempty"` +} + +// ListDeployedServiceReplicaInfo ... +type ListDeployedServiceReplicaInfo struct { + autorest.Response `json:"-"` + Value *[]BasicDeployedServiceReplicaInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListDeployedServiceReplicaInfo struct. +func (ldsri *ListDeployedServiceReplicaInfo) UnmarshalJSON(body []byte) error { + dsri, err := unmarshalBasicDeployedServiceReplicaInfoArray(body) + if err != nil { + return err + } + ldsri.Value = &dsri + + return nil +} + +// ListDeployedServiceTypeInfo ... +type ListDeployedServiceTypeInfo struct { + autorest.Response `json:"-"` + Value *[]DeployedServiceTypeInfo `json:"value,omitempty"` +} + +// ListFabricCodeVersionInfo ... +type ListFabricCodeVersionInfo struct { + autorest.Response `json:"-"` + Value *[]FabricCodeVersionInfo `json:"value,omitempty"` +} + +// ListFabricConfigVersionInfo ... +type ListFabricConfigVersionInfo struct { + autorest.Response `json:"-"` + Value *[]FabricConfigVersionInfo `json:"value,omitempty"` +} + +// ListFabricEvent ... +type ListFabricEvent struct { + autorest.Response `json:"-"` + Value *[]BasicFabricEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListFabricEvent struct. +func (lfe *ListFabricEvent) UnmarshalJSON(body []byte) error { + fe, err := unmarshalBasicFabricEventArray(body) + if err != nil { + return err + } + lfe.Value = &fe + + return nil +} + +// ListNodeEvent ... +type ListNodeEvent struct { + autorest.Response `json:"-"` + Value *[]BasicNodeEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListNodeEvent struct. +func (lne *ListNodeEvent) UnmarshalJSON(body []byte) error { + ne, err := unmarshalBasicNodeEventArray(body) + if err != nil { + return err + } + lne.Value = &ne + + return nil +} + +// ListOperationStatus ... +type ListOperationStatus struct { + autorest.Response `json:"-"` + Value *[]OperationStatus `json:"value,omitempty"` +} + +// ListPartitionEvent ... +type ListPartitionEvent struct { + autorest.Response `json:"-"` + Value *[]BasicPartitionEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListPartitionEvent struct. +func (lpe *ListPartitionEvent) UnmarshalJSON(body []byte) error { + peVar, err := unmarshalBasicPartitionEventArray(body) + if err != nil { + return err + } + lpe.Value = &peVar + + return nil +} + +// ListRepairTask ... +type ListRepairTask struct { + autorest.Response `json:"-"` + Value *[]RepairTask `json:"value,omitempty"` +} + +// ListReplicaEvent ... +type ListReplicaEvent struct { + autorest.Response `json:"-"` + Value *[]BasicReplicaEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListReplicaEvent struct. +func (lre *ListReplicaEvent) UnmarshalJSON(body []byte) error { + re, err := unmarshalBasicReplicaEventArray(body) + if err != nil { + return err + } + lre.Value = &re + + return nil +} + +// ListServiceEvent ... +type ListServiceEvent struct { + autorest.Response `json:"-"` + Value *[]BasicServiceEvent `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ListServiceEvent struct. +func (lse *ListServiceEvent) UnmarshalJSON(body []byte) error { + se, err := unmarshalBasicServiceEventArray(body) + if err != nil { + return err + } + lse.Value = &se + + return nil +} + +// ListServiceTypeInfo ... +type ListServiceTypeInfo struct { + autorest.Response `json:"-"` + Value *[]ServiceTypeInfo `json:"value,omitempty"` +} + +// LoadMetricReport represents the load metric report which contains the time metric was reported, its name +// and value. +type LoadMetricReport struct { + // LastReportedUtc - Gets the UTC time when the load was reported. + LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"` + // Name - The name of the load metric. + Name *string `json:"Name,omitempty"` + // Value - The value of the load metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue. + Value *string `json:"Value,omitempty"` + // CurrentValue - The value of the load metric. + CurrentValue *string `json:"CurrentValue,omitempty"` +} + +// LoadMetricReportInfo information about load reported by replica. +type LoadMetricReportInfo struct { + // Name - The name of the metric. + Name *string `json:"Name,omitempty"` + // Value - The value of the load for the metric. In future releases of Service Fabric this parameter will be deprecated in favor of CurrentValue. + Value *int32 `json:"Value,omitempty"` + // CurrentValue - The double value of the load for the metric. + CurrentValue *string `json:"CurrentValue,omitempty"` + // LastReportedUtc - The UTC time when the load is reported. + LastReportedUtc *date.Time `json:"LastReportedUtc,omitempty"` +} + +// LocalNetworkResourceProperties information about a Service Fabric container network local to a single +// Service Fabric cluster. +type LocalNetworkResourceProperties struct { + // NetworkAddressPrefix - Address space for the local container network. + NetworkAddressPrefix *string `json:"networkAddressPrefix,omitempty"` + // Description - User readable description of the network. + Description *string `json:"description,omitempty"` + // Status - Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the network. + StatusDetails *string `json:"statusDetails,omitempty"` + // Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal' + Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) MarshalJSON() ([]byte, error) { + lnrp.Kind = KindLocal + objectMap := make(map[string]interface{}) + if lnrp.NetworkAddressPrefix != nil { + objectMap["networkAddressPrefix"] = lnrp.NetworkAddressPrefix + } + if lnrp.Description != nil { + objectMap["description"] = lnrp.Description + } + if lnrp.Status != "" { + objectMap["status"] = lnrp.Status + } + if lnrp.StatusDetails != nil { + objectMap["statusDetails"] = lnrp.StatusDetails + } + if lnrp.Kind != "" { + objectMap["kind"] = lnrp.Kind + } + return json.Marshal(objectMap) +} + +// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) { + return nil, false +} + +// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) { + return &lnrp, true +} + +// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) { + return &lnrp, true +} + +// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) { + return nil, false +} + +// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for LocalNetworkResourceProperties. +func (lnrp LocalNetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) { + return &lnrp, true +} + +// MonitoringPolicyDescription describes the parameters for monitoring an upgrade in Monitored mode. +type MonitoringPolicyDescription struct { + // FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations. + // Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically. + // Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual' + FailureAction FailureAction `json:"FailureAction,omitempty"` + // HealthCheckWaitDurationInMilliseconds - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"` + // HealthCheckStableDurationInMilliseconds - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"` + // HealthCheckRetryTimeoutInMilliseconds - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"` + // UpgradeTimeoutInMilliseconds - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"` + // UpgradeDomainTimeoutInMilliseconds - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"` +} + +// NameDescription describes a Service Fabric name. +type NameDescription struct { + // Name - The Service Fabric name, including the 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// NamedPartitionInformation describes the partition information for the name as a string that is based on +// partition schemes. +type NamedPartitionInformation struct { + // Name - Name of the partition. + Name *string `json:"Name,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NamedPartitionInformation. +func (npi NamedPartitionInformation) MarshalJSON() ([]byte, error) { + npi.ServicePartitionKind = ServicePartitionKindNamed1 + objectMap := make(map[string]interface{}) + if npi.Name != nil { + objectMap["Name"] = npi.Name + } + if npi.ID != nil { + objectMap["Id"] = npi.ID + } + if npi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = npi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return &npi, true +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for NamedPartitionInformation. +func (npi NamedPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &npi, true +} + +// NamedPartitionSchemeDescription describes the named partition scheme of the service. +type NamedPartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // Names - Array of size specified by the ‘Count’ parameter, for the names of the partitions. + Names *[]string `json:"Names,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + npsd.PartitionScheme = PartitionSchemeNamed1 + objectMap := make(map[string]interface{}) + if npsd.Count != nil { + objectMap["Count"] = npsd.Count + } + if npsd.Names != nil { + objectMap["Names"] = npsd.Names + } + if npsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = npsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return &npsd, true +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for NamedPartitionSchemeDescription. +func (npsd NamedPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &npsd, true +} + +// NetworkRef describes a network reference in a service. +type NetworkRef struct { + // Name - Name of the network + Name *string `json:"name,omitempty"` + // EndpointRefs - A list of endpoints that are exposed on this network. + EndpointRefs *[]EndpointRef `json:"endpointRefs,omitempty"` +} + +// NetworkResourceDescription this type describes a network resource. +type NetworkResourceDescription struct { + autorest.Response `json:"-"` + // Name - Name of the Network resource. + Name *string `json:"name,omitempty"` + // Properties - Describes properties of a network resource. + Properties BasicNetworkResourceProperties `json:"properties,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for NetworkResourceDescription struct. +func (nrd *NetworkResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + nrd.Name = &name + } + case "properties": + if v != nil { + properties, err := unmarshalBasicNetworkResourceProperties(*v) + if err != nil { + return err + } + nrd.Properties = properties + } + } + } + + return nil +} + +// BasicNetworkResourceProperties describes properties of a network resource. +type BasicNetworkResourceProperties interface { + AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) + AsNetworkResourceProperties() (*NetworkResourceProperties, bool) +} + +// NetworkResourceProperties describes properties of a network resource. +type NetworkResourceProperties struct { + // Description - User readable description of the network. + Description *string `json:"description,omitempty"` + // Status - Status of the network. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the network. + StatusDetails *string `json:"statusDetails,omitempty"` + // Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal' + Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"` +} + +func unmarshalBasicNetworkResourceProperties(body []byte) (BasicNetworkResourceProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindLocal): + var lnrp LocalNetworkResourceProperties + err := json.Unmarshal(body, &lnrp) + return lnrp, err + default: + var nrp NetworkResourceProperties + err := json.Unmarshal(body, &nrp) + return nrp, err + } +} +func unmarshalBasicNetworkResourcePropertiesArray(body []byte) ([]BasicNetworkResourceProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + nrpArray := make([]BasicNetworkResourceProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + nrp, err := unmarshalBasicNetworkResourceProperties(*rawMessage) + if err != nil { + return nil, err + } + nrpArray[index] = nrp + } + return nrpArray, nil +} + +// MarshalJSON is the custom marshaler for NetworkResourceProperties. +func (nrp NetworkResourceProperties) MarshalJSON() ([]byte, error) { + nrp.Kind = KindNetworkResourceProperties + objectMap := make(map[string]interface{}) + if nrp.Description != nil { + objectMap["description"] = nrp.Description + } + if nrp.Status != "" { + objectMap["status"] = nrp.Status + } + if nrp.StatusDetails != nil { + objectMap["statusDetails"] = nrp.StatusDetails + } + if nrp.Kind != "" { + objectMap["kind"] = nrp.Kind + } + return json.Marshal(objectMap) +} + +// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties. +func (nrp NetworkResourceProperties) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) { + return &nrp, true +} + +// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties. +func (nrp NetworkResourceProperties) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) { + return &nrp, true +} + +// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties. +func (nrp NetworkResourceProperties) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) { + return nil, false +} + +// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties. +func (nrp NetworkResourceProperties) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) { + return nil, false +} + +// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourceProperties. +func (nrp NetworkResourceProperties) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) { + return &nrp, true +} + +// BasicNetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind. +type BasicNetworkResourcePropertiesBase interface { + AsNetworkResourceProperties() (*NetworkResourceProperties, bool) + AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) + AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) + AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) +} + +// NetworkResourcePropertiesBase this type describes the properties of a network resource, including its kind. +type NetworkResourcePropertiesBase struct { + // Kind - Possible values include: 'KindNetworkResourcePropertiesBase', 'KindNetworkResourceProperties', 'KindLocal' + Kind KindBasicNetworkResourcePropertiesBase `json:"kind,omitempty"` +} + +func unmarshalBasicNetworkResourcePropertiesBase(body []byte) (BasicNetworkResourcePropertiesBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindNetworkResourceProperties): + var nrp NetworkResourceProperties + err := json.Unmarshal(body, &nrp) + return nrp, err + case string(KindLocal): + var lnrp LocalNetworkResourceProperties + err := json.Unmarshal(body, &lnrp) + return lnrp, err + default: + var nrpb NetworkResourcePropertiesBase + err := json.Unmarshal(body, &nrpb) + return nrpb, err + } +} +func unmarshalBasicNetworkResourcePropertiesBaseArray(body []byte) ([]BasicNetworkResourcePropertiesBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + nrpbArray := make([]BasicNetworkResourcePropertiesBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + nrpb, err := unmarshalBasicNetworkResourcePropertiesBase(*rawMessage) + if err != nil { + return nil, err + } + nrpbArray[index] = nrpb + } + return nrpbArray, nil +} + +// MarshalJSON is the custom marshaler for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) MarshalJSON() ([]byte, error) { + nrpb.Kind = KindNetworkResourcePropertiesBase + objectMap := make(map[string]interface{}) + if nrpb.Kind != "" { + objectMap["kind"] = nrpb.Kind + } + return json.Marshal(objectMap) +} + +// AsNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) AsNetworkResourceProperties() (*NetworkResourceProperties, bool) { + return nil, false +} + +// AsBasicNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourceProperties() (BasicNetworkResourceProperties, bool) { + return nil, false +} + +// AsLocalNetworkResourceProperties is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) AsLocalNetworkResourceProperties() (*LocalNetworkResourceProperties, bool) { + return nil, false +} + +// AsNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) AsNetworkResourcePropertiesBase() (*NetworkResourcePropertiesBase, bool) { + return &nrpb, true +} + +// AsBasicNetworkResourcePropertiesBase is the BasicNetworkResourcePropertiesBase implementation for NetworkResourcePropertiesBase. +func (nrpb NetworkResourcePropertiesBase) AsBasicNetworkResourcePropertiesBase() (BasicNetworkResourcePropertiesBase, bool) { + return &nrpb, true +} + +// NodeAbortedEvent node Aborted event. +type NodeAbortedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeAbortedEvent. +func (nae NodeAbortedEvent) MarshalJSON() ([]byte, error) { + nae.Kind = KindNodeAborted + objectMap := make(map[string]interface{}) + if nae.NodeInstance != nil { + objectMap["NodeInstance"] = nae.NodeInstance + } + if nae.NodeID != nil { + objectMap["NodeId"] = nae.NodeID + } + if nae.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nae.UpgradeDomain + } + if nae.FaultDomain != nil { + objectMap["FaultDomain"] = nae.FaultDomain + } + if nae.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nae.IPAddressOrFQDN + } + if nae.Hostname != nil { + objectMap["Hostname"] = nae.Hostname + } + if nae.IsSeedNode != nil { + objectMap["IsSeedNode"] = nae.IsSeedNode + } + if nae.NodeVersion != nil { + objectMap["NodeVersion"] = nae.NodeVersion + } + if nae.NodeName != nil { + objectMap["NodeName"] = nae.NodeName + } + if nae.EventInstanceID != nil { + objectMap["EventInstanceId"] = nae.EventInstanceID + } + if nae.Category != nil { + objectMap["Category"] = nae.Category + } + if nae.TimeStamp != nil { + objectMap["TimeStamp"] = nae.TimeStamp + } + if nae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nae.HasCorrelatedEvents + } + if nae.Kind != "" { + objectMap["Kind"] = nae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nae, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return &nae, true +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAbortedEvent. +func (nae NodeAbortedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nae, true +} + +// NodeAddedToClusterEvent node Added event. +type NodeAddedToClusterEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeType - Type of Node. + NodeType *string `json:"NodeType,omitempty"` + // FabricVersion - Fabric version. + FabricVersion *string `json:"FabricVersion,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // NodeCapacities - Capacities. + NodeCapacities *string `json:"NodeCapacities,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) MarshalJSON() ([]byte, error) { + natce.Kind = KindNodeAddedToCluster + objectMap := make(map[string]interface{}) + if natce.NodeID != nil { + objectMap["NodeId"] = natce.NodeID + } + if natce.NodeInstance != nil { + objectMap["NodeInstance"] = natce.NodeInstance + } + if natce.NodeType != nil { + objectMap["NodeType"] = natce.NodeType + } + if natce.FabricVersion != nil { + objectMap["FabricVersion"] = natce.FabricVersion + } + if natce.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = natce.IPAddressOrFQDN + } + if natce.NodeCapacities != nil { + objectMap["NodeCapacities"] = natce.NodeCapacities + } + if natce.NodeName != nil { + objectMap["NodeName"] = natce.NodeName + } + if natce.EventInstanceID != nil { + objectMap["EventInstanceId"] = natce.EventInstanceID + } + if natce.Category != nil { + objectMap["Category"] = natce.Category + } + if natce.TimeStamp != nil { + objectMap["TimeStamp"] = natce.TimeStamp + } + if natce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = natce.HasCorrelatedEvents + } + if natce.Kind != "" { + objectMap["Kind"] = natce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &natce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return &natce, true +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeAddedToClusterEvent. +func (natce NodeAddedToClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &natce, true +} + +// NodeClosedEvent node Closed event. +type NodeClosedEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // Error - Describes error. + Error *string `json:"Error,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeClosedEvent. +func (nce NodeClosedEvent) MarshalJSON() ([]byte, error) { + nce.Kind = KindNodeClosed + objectMap := make(map[string]interface{}) + if nce.NodeID != nil { + objectMap["NodeId"] = nce.NodeID + } + if nce.NodeInstance != nil { + objectMap["NodeInstance"] = nce.NodeInstance + } + if nce.Error != nil { + objectMap["Error"] = nce.Error + } + if nce.NodeName != nil { + objectMap["NodeName"] = nce.NodeName + } + if nce.EventInstanceID != nil { + objectMap["EventInstanceId"] = nce.EventInstanceID + } + if nce.Category != nil { + objectMap["Category"] = nce.Category + } + if nce.TimeStamp != nil { + objectMap["TimeStamp"] = nce.TimeStamp + } + if nce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nce.HasCorrelatedEvents + } + if nce.Kind != "" { + objectMap["Kind"] = nce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return &nce, true +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeClosedEvent. +func (nce NodeClosedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nce, true +} + +// NodeDeactivateCompletedEvent node Deactivate Completed event. +type NodeDeactivateCompletedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // EffectiveDeactivateIntent - Describes deactivate intent. + EffectiveDeactivateIntent *string `json:"EffectiveDeactivateIntent,omitempty"` + // BatchIdsWithDeactivateIntent - Batch Ids. + BatchIdsWithDeactivateIntent *string `json:"BatchIdsWithDeactivateIntent,omitempty"` + // StartTime - Start time. + StartTime *date.Time `json:"StartTime,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) MarshalJSON() ([]byte, error) { + ndce.Kind = KindNodeDeactivateCompleted + objectMap := make(map[string]interface{}) + if ndce.NodeInstance != nil { + objectMap["NodeInstance"] = ndce.NodeInstance + } + if ndce.EffectiveDeactivateIntent != nil { + objectMap["EffectiveDeactivateIntent"] = ndce.EffectiveDeactivateIntent + } + if ndce.BatchIdsWithDeactivateIntent != nil { + objectMap["BatchIdsWithDeactivateIntent"] = ndce.BatchIdsWithDeactivateIntent + } + if ndce.StartTime != nil { + objectMap["StartTime"] = ndce.StartTime + } + if ndce.NodeName != nil { + objectMap["NodeName"] = ndce.NodeName + } + if ndce.EventInstanceID != nil { + objectMap["EventInstanceId"] = ndce.EventInstanceID + } + if ndce.Category != nil { + objectMap["Category"] = ndce.Category + } + if ndce.TimeStamp != nil { + objectMap["TimeStamp"] = ndce.TimeStamp + } + if ndce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ndce.HasCorrelatedEvents + } + if ndce.Kind != "" { + objectMap["Kind"] = ndce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ndce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return &ndce, true +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateCompletedEvent. +func (ndce NodeDeactivateCompletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ndce, true +} + +// NodeDeactivateStartedEvent node Deactivate Started event. +type NodeDeactivateStartedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // BatchID - Batch Id. + BatchID *string `json:"BatchId,omitempty"` + // DeactivateIntent - Describes deactivate intent. + DeactivateIntent *string `json:"DeactivateIntent,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) MarshalJSON() ([]byte, error) { + ndse.Kind = KindNodeDeactivateStarted + objectMap := make(map[string]interface{}) + if ndse.NodeInstance != nil { + objectMap["NodeInstance"] = ndse.NodeInstance + } + if ndse.BatchID != nil { + objectMap["BatchId"] = ndse.BatchID + } + if ndse.DeactivateIntent != nil { + objectMap["DeactivateIntent"] = ndse.DeactivateIntent + } + if ndse.NodeName != nil { + objectMap["NodeName"] = ndse.NodeName + } + if ndse.EventInstanceID != nil { + objectMap["EventInstanceId"] = ndse.EventInstanceID + } + if ndse.Category != nil { + objectMap["Category"] = ndse.Category + } + if ndse.TimeStamp != nil { + objectMap["TimeStamp"] = ndse.TimeStamp + } + if ndse.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ndse.HasCorrelatedEvents + } + if ndse.Kind != "" { + objectMap["Kind"] = ndse.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ndse, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return &ndse, true +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDeactivateStartedEvent. +func (ndse NodeDeactivateStartedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ndse, true +} + +// NodeDeactivationInfo information about the node deactivation. This information is valid for a node that +// is undergoing deactivation or has already been deactivated. +type NodeDeactivationInfo struct { + // NodeDeactivationIntent - The intent or the reason for deactivating the node. Following are the possible values for it. Possible values include: 'NodeDeactivationIntentInvalid', 'NodeDeactivationIntentPause', 'NodeDeactivationIntentRestart', 'NodeDeactivationIntentRemoveData', 'NodeDeactivationIntentRemoveNode' + NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"` + // NodeDeactivationStatus - The status of node deactivation operation. Following are the possible values. Possible values include: 'NodeDeactivationStatusNone', 'NodeDeactivationStatusSafetyCheckInProgress', 'NodeDeactivationStatusSafetyCheckComplete', 'NodeDeactivationStatusCompleted' + NodeDeactivationStatus NodeDeactivationStatus `json:"NodeDeactivationStatus,omitempty"` + // NodeDeactivationTask - List of tasks representing the deactivation operation on the node. + NodeDeactivationTask *[]NodeDeactivationTask `json:"NodeDeactivationTask,omitempty"` + // PendingSafetyChecks - List of pending safety checks + PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"` +} + +// NodeDeactivationTask the task representing the deactivation operation on the node. +type NodeDeactivationTask struct { + // NodeDeactivationTaskID - Identity of the task related to deactivation operation on the node. + NodeDeactivationTaskID *NodeDeactivationTaskID `json:"NodeDeactivationTaskId,omitempty"` + // NodeDeactivationIntent - The intent or the reason for deactivating the node. Following are the possible values for it. Possible values include: 'NodeDeactivationIntentInvalid', 'NodeDeactivationIntentPause', 'NodeDeactivationIntentRestart', 'NodeDeactivationIntentRemoveData', 'NodeDeactivationIntentRemoveNode' + NodeDeactivationIntent NodeDeactivationIntent `json:"NodeDeactivationIntent,omitempty"` +} + +// NodeDeactivationTaskID identity of the task related to deactivation operation on the node. +type NodeDeactivationTaskID struct { + // ID - Value of the task id. + ID *string `json:"Id,omitempty"` + // NodeDeactivationTaskType - The type of the task that performed the node deactivation. Following are the possible values. Possible values include: 'NodeDeactivationTaskTypeInvalid', 'NodeDeactivationTaskTypeInfrastructure', 'NodeDeactivationTaskTypeRepair', 'NodeDeactivationTaskTypeClient' + NodeDeactivationTaskType NodeDeactivationTaskType `json:"NodeDeactivationTaskType,omitempty"` +} + +// NodeDownEvent node Down event. +type NodeDownEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // LastNodeUpAt - Time when Node was last up. + LastNodeUpAt *date.Time `json:"LastNodeUpAt,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeDownEvent. +func (nde NodeDownEvent) MarshalJSON() ([]byte, error) { + nde.Kind = KindNodeDown + objectMap := make(map[string]interface{}) + if nde.NodeInstance != nil { + objectMap["NodeInstance"] = nde.NodeInstance + } + if nde.LastNodeUpAt != nil { + objectMap["LastNodeUpAt"] = nde.LastNodeUpAt + } + if nde.NodeName != nil { + objectMap["NodeName"] = nde.NodeName + } + if nde.EventInstanceID != nil { + objectMap["EventInstanceId"] = nde.EventInstanceID + } + if nde.Category != nil { + objectMap["Category"] = nde.Category + } + if nde.TimeStamp != nil { + objectMap["TimeStamp"] = nde.TimeStamp + } + if nde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nde.HasCorrelatedEvents + } + if nde.Kind != "" { + objectMap["Kind"] = nde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nde, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return &nde, true +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeDownEvent. +func (nde NodeDownEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nde, true +} + +// BasicNodeEvent represents the base for all Node Events. +type BasicNodeEvent interface { + AsNodeAbortedEvent() (*NodeAbortedEvent, bool) + AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) + AsNodeClosedEvent() (*NodeClosedEvent, bool) + AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) + AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) + AsNodeDownEvent() (*NodeDownEvent, bool) + AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) + AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) + AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) + AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) + AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) + AsNodeUpEvent() (*NodeUpEvent, bool) + AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) + AsNodeEvent() (*NodeEvent, bool) +} + +// NodeEvent represents the base for all Node Events. +type NodeEvent struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicNodeEvent(body []byte) (BasicNodeEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindNodeAborted): + var nae NodeAbortedEvent + err := json.Unmarshal(body, &nae) + return nae, err + case string(KindNodeAddedToCluster): + var natce NodeAddedToClusterEvent + err := json.Unmarshal(body, &natce) + return natce, err + case string(KindNodeClosed): + var nce NodeClosedEvent + err := json.Unmarshal(body, &nce) + return nce, err + case string(KindNodeDeactivateCompleted): + var ndce NodeDeactivateCompletedEvent + err := json.Unmarshal(body, &ndce) + return ndce, err + case string(KindNodeDeactivateStarted): + var ndse NodeDeactivateStartedEvent + err := json.Unmarshal(body, &ndse) + return ndse, err + case string(KindNodeDown): + var nde NodeDownEvent + err := json.Unmarshal(body, &nde) + return nde, err + case string(KindNodeNewHealthReport): + var nnhre NodeNewHealthReportEvent + err := json.Unmarshal(body, &nnhre) + return nnhre, err + case string(KindNodeHealthReportExpired): + var nhree NodeHealthReportExpiredEvent + err := json.Unmarshal(body, &nhree) + return nhree, err + case string(KindNodeOpenSucceeded): + var nose NodeOpenSucceededEvent + err := json.Unmarshal(body, &nose) + return nose, err + case string(KindNodeOpenFailed): + var nofe NodeOpenFailedEvent + err := json.Unmarshal(body, &nofe) + return nofe, err + case string(KindNodeRemovedFromCluster): + var nrfce NodeRemovedFromClusterEvent + err := json.Unmarshal(body, &nrfce) + return nrfce, err + case string(KindNodeUp): + var nue NodeUpEvent + err := json.Unmarshal(body, &nue) + return nue, err + case string(KindChaosNodeRestartScheduled): + var cnrse ChaosNodeRestartScheduledEvent + err := json.Unmarshal(body, &cnrse) + return cnrse, err + default: + var ne NodeEvent + err := json.Unmarshal(body, &ne) + return ne, err + } +} +func unmarshalBasicNodeEventArray(body []byte) ([]BasicNodeEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + neArray := make([]BasicNodeEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ne, err := unmarshalBasicNodeEvent(*rawMessage) + if err != nil { + return nil, err + } + neArray[index] = ne + } + return neArray, nil +} + +// MarshalJSON is the custom marshaler for NodeEvent. +func (ne NodeEvent) MarshalJSON() ([]byte, error) { + ne.Kind = KindNodeEvent + objectMap := make(map[string]interface{}) + if ne.NodeName != nil { + objectMap["NodeName"] = ne.NodeName + } + if ne.EventInstanceID != nil { + objectMap["EventInstanceId"] = ne.EventInstanceID + } + if ne.Category != nil { + objectMap["Category"] = ne.Category + } + if ne.TimeStamp != nil { + objectMap["TimeStamp"] = ne.TimeStamp + } + if ne.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ne.HasCorrelatedEvents + } + if ne.Kind != "" { + objectMap["Kind"] = ne.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeEvent() (*NodeEvent, bool) { + return &ne, true +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &ne, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeEvent. +func (ne NodeEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ne, true +} + +// NodeHealth information about the health of a Service Fabric node. +type NodeHealth struct { + autorest.Response `json:"-"` + // Name - Name of the node whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// NodeHealthEvaluation represents health evaluation for a node, containing information about the data and +// the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type NodeHealthEvaluation struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the node. The types of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) MarshalJSON() ([]byte, error) { + nhe.Kind = KindNode + objectMap := make(map[string]interface{}) + if nhe.NodeName != nil { + objectMap["NodeName"] = nhe.NodeName + } + if nhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations + } + if nhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState + } + if nhe.Description != nil { + objectMap["Description"] = nhe.Description + } + if nhe.Kind != "" { + objectMap["Kind"] = nhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return &nhe, true +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodeHealthEvaluation. +func (nhe NodeHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &nhe, true +} + +// NodeHealthReportExpiredEvent node Health Report Expired event. +type NodeHealthReportExpiredEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + nhree.Kind = KindNodeHealthReportExpired + objectMap := make(map[string]interface{}) + if nhree.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = nhree.NodeInstanceID + } + if nhree.SourceID != nil { + objectMap["SourceId"] = nhree.SourceID + } + if nhree.Property != nil { + objectMap["Property"] = nhree.Property + } + if nhree.HealthState != nil { + objectMap["HealthState"] = nhree.HealthState + } + if nhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = nhree.TimeToLiveMs + } + if nhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = nhree.SequenceNumber + } + if nhree.Description != nil { + objectMap["Description"] = nhree.Description + } + if nhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = nhree.RemoveWhenExpired + } + if nhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = nhree.SourceUtcTimestamp + } + if nhree.NodeName != nil { + objectMap["NodeName"] = nhree.NodeName + } + if nhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = nhree.EventInstanceID + } + if nhree.Category != nil { + objectMap["Category"] = nhree.Category + } + if nhree.TimeStamp != nil { + objectMap["TimeStamp"] = nhree.TimeStamp + } + if nhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nhree.HasCorrelatedEvents + } + if nhree.Kind != "" { + objectMap["Kind"] = nhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nhree, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return &nhree, true +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeHealthReportExpiredEvent. +func (nhree NodeHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nhree, true +} + +// NodeHealthState represents the health state of a node, which contains the node identifier and its +// aggregated health state. +type NodeHealthState struct { + // Name - The name of a Service Fabric node. + Name *string `json:"Name,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name. + ID *NodeID `json:"Id,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// NodeHealthStateChunk represents the health state chunk of a node, which contains the node name and its +// aggregated health state. +type NodeHealthStateChunk struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// NodeHealthStateChunkList the list of node health state chunks in the cluster that respect the input +// filters in the chunk query. Returned by get cluster health state chunks query. +type NodeHealthStateChunkList struct { + // Items - The list of node health state chunks that respect the input filters in the chunk query. + Items *[]NodeHealthStateChunk `json:"Items,omitempty"` + // TotalCount - Total number of entity health state objects that match the specified filters from the cluster health chunk query description. + TotalCount *int64 `json:"TotalCount,omitempty"` +} + +// NodeHealthStateFilter defines matching criteria to determine whether a node should be included in the +// returned cluster health chunk. +// One filter can match zero, one or multiple nodes, depending on its properties. +// Can be specified in the cluster health chunk query description. +type NodeHealthStateFilter struct { + // NodeNameFilter - Name of the node that matches the filter. The filter is applied only to the specified node, if it exists. + // If the node doesn't exist, no node is returned in the cluster health chunk based on this filter. + // If the node exists, it is included in the cluster health chunk if the health state matches the other filter properties. + // If not specified, all nodes that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + NodeNameFilter *string `json:"NodeNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the nodes. It allows selecting nodes if they match the desired health states. + // The possible values are integer value of one of the following health states. Only nodes that match the filter are returned. All nodes are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the node name is specified. If the filter has default value and node name is specified, the matching node is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches nodes with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// NodeID an internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically +// generated from node name. +type NodeID struct { + // ID - Value of the node Id. This is a 128 bit integer. + ID *string `json:"Id,omitempty"` +} + +// NodeImpact describes the expected impact of a repair to a particular node. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeImpact struct { + // NodeName - The name of the impacted node. + NodeName *string `json:"NodeName,omitempty"` + // ImpactLevel - The level of impact expected. Possible values include: 'ImpactLevelInvalid', 'ImpactLevelNone', 'ImpactLevelRestart', 'ImpactLevelRemoveData', 'ImpactLevelRemoveNode' + ImpactLevel ImpactLevel `json:"ImpactLevel,omitempty"` +} + +// NodeInfo information about a node in Service Fabric cluster. +type NodeInfo struct { + autorest.Response `json:"-"` + // Name - The name of a Service Fabric node. + Name *string `json:"Name,omitempty"` + // IPAddressOrFQDN - The IP address or fully qualified domain name of the node. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Type - The type of the node. + Type *string `json:"Type,omitempty"` + // CodeVersion - The version of Service Fabric binaries that the node is running. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The version of Service Fabric cluster manifest that the node is using. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // NodeStatus - The status of the node. Possible values include: 'NodeStatusInvalid', 'NodeStatusUp', 'NodeStatusDown', 'NodeStatusEnabling', 'NodeStatusDisabling', 'NodeStatusDisabled', 'NodeStatusUnknown', 'NodeStatusRemoved' + NodeStatus NodeStatus `json:"NodeStatus,omitempty"` + // NodeUpTimeInSeconds - Time in seconds since the node has been in NodeStatus Up. Value zero indicates that the node is not Up. + NodeUpTimeInSeconds *string `json:"NodeUpTimeInSeconds,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // IsSeedNode - Indicates if the node is a seed node or not. Returns true if the node is a seed node, otherwise false. A quorum of seed nodes are required for proper operation of Service Fabric cluster. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // UpgradeDomain - The upgrade domain of the node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - The fault domain of the node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // ID - An internal ID used by Service Fabric to uniquely identify a node. Node Id is deterministically generated from node name. + ID *NodeID `json:"Id,omitempty"` + // InstanceID - The ID representing the node instance. While the ID of the node is deterministically generated from the node name and remains same across restarts, the InstanceId changes every time node restarts. + InstanceID *string `json:"InstanceId,omitempty"` + // NodeDeactivationInfo - Information about the node deactivation. This information is valid for a node that is undergoing deactivation or has already been deactivated. + NodeDeactivationInfo *NodeDeactivationInfo `json:"NodeDeactivationInfo,omitempty"` + // IsStopped - Indicates if the node is stopped by calling stop node API or not. Returns true if the node is stopped, otherwise false. + IsStopped *bool `json:"IsStopped,omitempty"` + // NodeDownTimeInSeconds - Time in seconds since the node has been in NodeStatus Down. Value zero indicates node is not NodeStatus Down. + NodeDownTimeInSeconds *string `json:"NodeDownTimeInSeconds,omitempty"` + // NodeUpAt - Date time in UTC when the node came up. If the node has never been up then this value will be zero date time. + NodeUpAt *date.Time `json:"NodeUpAt,omitempty"` + // NodeDownAt - Date time in UTC when the node went down. If node has never been down then this value will be zero date time. + NodeDownAt *date.Time `json:"NodeDownAt,omitempty"` +} + +// NodeLoadInfo information about load on a Service Fabric node. It holds a summary of all metrics and +// their load on a node. +type NodeLoadInfo struct { + autorest.Response `json:"-"` + // NodeName - Name of the node for which the load information is provided by this object. + NodeName *string `json:"NodeName,omitempty"` + // NodeLoadMetricInformation - List that contains metrics and their load information on this node. + NodeLoadMetricInformation *[]NodeLoadMetricInformation `json:"NodeLoadMetricInformation,omitempty"` +} + +// NodeLoadMetricInformation represents data structure that contains load information for a certain metric +// on a node. +type NodeLoadMetricInformation struct { + // Name - Name of the metric for which this load information is provided. + Name *string `json:"Name,omitempty"` + // NodeCapacity - Total capacity on the node for this metric. + NodeCapacity *string `json:"NodeCapacity,omitempty"` + // NodeLoad - Current load on the node for this metric. + NodeLoad *string `json:"NodeLoad,omitempty"` + // NodeRemainingCapacity - The remaining capacity on the node for this metric. + NodeRemainingCapacity *string `json:"NodeRemainingCapacity,omitempty"` + // IsCapacityViolation - Indicates if there is a capacity violation for this metric on the node. + IsCapacityViolation *bool `json:"IsCapacityViolation,omitempty"` + // NodeBufferedCapacity - The value that indicates the reserved capacity for this metric on the node. + NodeBufferedCapacity *string `json:"NodeBufferedCapacity,omitempty"` + // NodeRemainingBufferedCapacity - The remaining reserved capacity for this metric on the node. + NodeRemainingBufferedCapacity *string `json:"NodeRemainingBufferedCapacity,omitempty"` +} + +// NodeNewHealthReportEvent node Health Report Created event. +type NodeNewHealthReportEvent struct { + // NodeInstanceID - Id of Node instance. + NodeInstanceID *int64 `json:"NodeInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) MarshalJSON() ([]byte, error) { + nnhre.Kind = KindNodeNewHealthReport + objectMap := make(map[string]interface{}) + if nnhre.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = nnhre.NodeInstanceID + } + if nnhre.SourceID != nil { + objectMap["SourceId"] = nnhre.SourceID + } + if nnhre.Property != nil { + objectMap["Property"] = nnhre.Property + } + if nnhre.HealthState != nil { + objectMap["HealthState"] = nnhre.HealthState + } + if nnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = nnhre.TimeToLiveMs + } + if nnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = nnhre.SequenceNumber + } + if nnhre.Description != nil { + objectMap["Description"] = nnhre.Description + } + if nnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = nnhre.RemoveWhenExpired + } + if nnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = nnhre.SourceUtcTimestamp + } + if nnhre.NodeName != nil { + objectMap["NodeName"] = nnhre.NodeName + } + if nnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = nnhre.EventInstanceID + } + if nnhre.Category != nil { + objectMap["Category"] = nnhre.Category + } + if nnhre.TimeStamp != nil { + objectMap["TimeStamp"] = nnhre.TimeStamp + } + if nnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nnhre.HasCorrelatedEvents + } + if nnhre.Kind != "" { + objectMap["Kind"] = nnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nnhre, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return &nnhre, true +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeNewHealthReportEvent. +func (nnhre NodeNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nnhre, true +} + +// NodeOpenFailedEvent node Open Failed event. +type NodeOpenFailedEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // Error - Describes the error. + Error *string `json:"Error,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) MarshalJSON() ([]byte, error) { + nofe.Kind = KindNodeOpenFailed + objectMap := make(map[string]interface{}) + if nofe.NodeInstance != nil { + objectMap["NodeInstance"] = nofe.NodeInstance + } + if nofe.NodeID != nil { + objectMap["NodeId"] = nofe.NodeID + } + if nofe.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nofe.UpgradeDomain + } + if nofe.FaultDomain != nil { + objectMap["FaultDomain"] = nofe.FaultDomain + } + if nofe.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nofe.IPAddressOrFQDN + } + if nofe.Hostname != nil { + objectMap["Hostname"] = nofe.Hostname + } + if nofe.IsSeedNode != nil { + objectMap["IsSeedNode"] = nofe.IsSeedNode + } + if nofe.NodeVersion != nil { + objectMap["NodeVersion"] = nofe.NodeVersion + } + if nofe.Error != nil { + objectMap["Error"] = nofe.Error + } + if nofe.NodeName != nil { + objectMap["NodeName"] = nofe.NodeName + } + if nofe.EventInstanceID != nil { + objectMap["EventInstanceId"] = nofe.EventInstanceID + } + if nofe.Category != nil { + objectMap["Category"] = nofe.Category + } + if nofe.TimeStamp != nil { + objectMap["TimeStamp"] = nofe.TimeStamp + } + if nofe.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nofe.HasCorrelatedEvents + } + if nofe.Kind != "" { + objectMap["Kind"] = nofe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nofe, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return &nofe, true +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenFailedEvent. +func (nofe NodeOpenFailedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nofe, true +} + +// NodeOpenSucceededEvent node Opened Succeeded event. +type NodeOpenSucceededEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // UpgradeDomain - Upgrade domain of Node. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` + // FaultDomain - Fault domain of Node. + FaultDomain *string `json:"FaultDomain,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // Hostname - Name of Host. + Hostname *string `json:"Hostname,omitempty"` + // IsSeedNode - Indicates if it is seed node. + IsSeedNode *bool `json:"IsSeedNode,omitempty"` + // NodeVersion - Version of Node. + NodeVersion *string `json:"NodeVersion,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) MarshalJSON() ([]byte, error) { + nose.Kind = KindNodeOpenSucceeded + objectMap := make(map[string]interface{}) + if nose.NodeInstance != nil { + objectMap["NodeInstance"] = nose.NodeInstance + } + if nose.NodeID != nil { + objectMap["NodeId"] = nose.NodeID + } + if nose.UpgradeDomain != nil { + objectMap["UpgradeDomain"] = nose.UpgradeDomain + } + if nose.FaultDomain != nil { + objectMap["FaultDomain"] = nose.FaultDomain + } + if nose.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nose.IPAddressOrFQDN + } + if nose.Hostname != nil { + objectMap["Hostname"] = nose.Hostname + } + if nose.IsSeedNode != nil { + objectMap["IsSeedNode"] = nose.IsSeedNode + } + if nose.NodeVersion != nil { + objectMap["NodeVersion"] = nose.NodeVersion + } + if nose.NodeName != nil { + objectMap["NodeName"] = nose.NodeName + } + if nose.EventInstanceID != nil { + objectMap["EventInstanceId"] = nose.EventInstanceID + } + if nose.Category != nil { + objectMap["Category"] = nose.Category + } + if nose.TimeStamp != nil { + objectMap["TimeStamp"] = nose.TimeStamp + } + if nose.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nose.HasCorrelatedEvents + } + if nose.Kind != "" { + objectMap["Kind"] = nose.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nose, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return &nose, true +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeOpenSucceededEvent. +func (nose NodeOpenSucceededEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nose, true +} + +// NodeRemovedFromClusterEvent node Removed event. +type NodeRemovedFromClusterEvent struct { + // NodeID - Id of Node. + NodeID *string `json:"NodeId,omitempty"` + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // NodeType - Type of Node. + NodeType *string `json:"NodeType,omitempty"` + // FabricVersion - Fabric version. + FabricVersion *string `json:"FabricVersion,omitempty"` + // IPAddressOrFQDN - IP address or FQDN. + IPAddressOrFQDN *string `json:"IpAddressOrFQDN,omitempty"` + // NodeCapacities - Capacities. + NodeCapacities *string `json:"NodeCapacities,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) MarshalJSON() ([]byte, error) { + nrfce.Kind = KindNodeRemovedFromCluster + objectMap := make(map[string]interface{}) + if nrfce.NodeID != nil { + objectMap["NodeId"] = nrfce.NodeID + } + if nrfce.NodeInstance != nil { + objectMap["NodeInstance"] = nrfce.NodeInstance + } + if nrfce.NodeType != nil { + objectMap["NodeType"] = nrfce.NodeType + } + if nrfce.FabricVersion != nil { + objectMap["FabricVersion"] = nrfce.FabricVersion + } + if nrfce.IPAddressOrFQDN != nil { + objectMap["IpAddressOrFQDN"] = nrfce.IPAddressOrFQDN + } + if nrfce.NodeCapacities != nil { + objectMap["NodeCapacities"] = nrfce.NodeCapacities + } + if nrfce.NodeName != nil { + objectMap["NodeName"] = nrfce.NodeName + } + if nrfce.EventInstanceID != nil { + objectMap["EventInstanceId"] = nrfce.EventInstanceID + } + if nrfce.Category != nil { + objectMap["Category"] = nrfce.Category + } + if nrfce.TimeStamp != nil { + objectMap["TimeStamp"] = nrfce.TimeStamp + } + if nrfce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nrfce.HasCorrelatedEvents + } + if nrfce.Kind != "" { + objectMap["Kind"] = nrfce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nrfce, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return &nrfce, true +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeRemovedFromClusterEvent. +func (nrfce NodeRemovedFromClusterEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nrfce, true +} + +// NodeRepairImpactDescription describes the expected impact of a repair on a set of nodes. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeRepairImpactDescription struct { + // NodeImpactList - The list of nodes impacted by a repair action and their respective expected impact. + NodeImpactList *[]NodeImpact `json:"NodeImpactList,omitempty"` + // Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode' + Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) MarshalJSON() ([]byte, error) { + nrid.Kind = KindBasicRepairImpactDescriptionBaseKindNode + objectMap := make(map[string]interface{}) + if nrid.NodeImpactList != nil { + objectMap["NodeImpactList"] = nrid.NodeImpactList + } + if nrid.Kind != "" { + objectMap["Kind"] = nrid.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) { + return &nrid, true +} + +// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) { + return nil, false +} + +// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for NodeRepairImpactDescription. +func (nrid NodeRepairImpactDescription) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) { + return &nrid, true +} + +// NodeRepairTargetDescription describes the list of nodes targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type NodeRepairTargetDescription struct { + // NodeNames - The list of nodes targeted by a repair action. + NodeNames *[]string `json:"NodeNames,omitempty"` + // Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode' + Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) MarshalJSON() ([]byte, error) { + nrtd.Kind = KindBasicRepairTargetDescriptionBaseKindNode + objectMap := make(map[string]interface{}) + if nrtd.NodeNames != nil { + objectMap["NodeNames"] = nrtd.NodeNames + } + if nrtd.Kind != "" { + objectMap["Kind"] = nrtd.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) { + return &nrtd, true +} + +// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) { + return nil, false +} + +// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for NodeRepairTargetDescription. +func (nrtd NodeRepairTargetDescription) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) { + return &nrtd, true +} + +// NodeResult contains information about a node that was targeted by a user-induced operation. +type NodeResult struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // NodeInstanceID - The node instance id. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` +} + +// NodesHealthEvaluation represents health evaluation for nodes, containing health evaluations for each +// unhealthy node that impacted current aggregated health state. Can be returned when evaluating cluster +// health and the aggregated health state is either Error or Warning. +type NodesHealthEvaluation struct { + // MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes found in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) MarshalJSON() ([]byte, error) { + nhe.Kind = KindNodes + objectMap := make(map[string]interface{}) + if nhe.MaxPercentUnhealthyNodes != nil { + objectMap["MaxPercentUnhealthyNodes"] = nhe.MaxPercentUnhealthyNodes + } + if nhe.TotalCount != nil { + objectMap["TotalCount"] = nhe.TotalCount + } + if nhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = nhe.UnhealthyEvaluations + } + if nhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = nhe.AggregatedHealthState + } + if nhe.Description != nil { + objectMap["Description"] = nhe.Description + } + if nhe.Kind != "" { + objectMap["Kind"] = nhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return &nhe, true +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for NodesHealthEvaluation. +func (nhe NodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &nhe, true +} + +// NodeTransitionProgress information about an NodeTransition operation. This class contains an +// OperationState and a NodeTransitionResult. The NodeTransitionResult is not valid until OperationState +// is Completed or Faulted. +type NodeTransitionProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // NodeTransitionResult - Represents information about an operation in a terminal state (Completed or Faulted). + NodeTransitionResult *NodeTransitionResult `json:"NodeTransitionResult,omitempty"` +} + +// NodeTransitionResult represents information about an operation in a terminal state (Completed or +// Faulted). +type NodeTransitionResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // NodeResult - Contains information about a node that was targeted by a user-induced operation. + NodeResult *NodeResult `json:"NodeResult,omitempty"` +} + +// NodeUpEvent node Up event. +type NodeUpEvent struct { + // NodeInstance - Id of Node instance. + NodeInstance *int64 `json:"NodeInstance,omitempty"` + // LastNodeDownAt - Time when Node was last down. + LastNodeDownAt *date.Time `json:"LastNodeDownAt,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for NodeUpEvent. +func (nue NodeUpEvent) MarshalJSON() ([]byte, error) { + nue.Kind = KindNodeUp + objectMap := make(map[string]interface{}) + if nue.NodeInstance != nil { + objectMap["NodeInstance"] = nue.NodeInstance + } + if nue.LastNodeDownAt != nil { + objectMap["LastNodeDownAt"] = nue.LastNodeDownAt + } + if nue.NodeName != nil { + objectMap["NodeName"] = nue.NodeName + } + if nue.EventInstanceID != nil { + objectMap["EventInstanceId"] = nue.EventInstanceID + } + if nue.Category != nil { + objectMap["Category"] = nue.Category + } + if nue.TimeStamp != nil { + objectMap["TimeStamp"] = nue.TimeStamp + } + if nue.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = nue.HasCorrelatedEvents + } + if nue.Kind != "" { + objectMap["Kind"] = nue.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return &nue, true +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return &nue, true +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for NodeUpEvent. +func (nue NodeUpEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &nue, true +} + +// NodeUpgradeProgressInfo information about the upgrading node and its status +type NodeUpgradeProgressInfo struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // UpgradePhase - The state of the upgrading node. Possible values include: 'NodeUpgradePhaseInvalid', 'NodeUpgradePhasePreUpgradeSafetyCheck', 'NodeUpgradePhaseUpgrading', 'NodeUpgradePhasePostUpgradeSafetyCheck' + UpgradePhase NodeUpgradePhase `json:"UpgradePhase,omitempty"` + // PendingSafetyChecks - List of pending safety checks + PendingSafetyChecks *[]SafetyCheckWrapper `json:"PendingSafetyChecks,omitempty"` +} + +// OperationStatus contains the OperationId, OperationState, and OperationType for user-induced operations. +type OperationStatus struct { + // OperationID - A GUID that identifies a call to this API. This is also passed into the corresponding GetProgress API. + OperationID *uuid.UUID `json:"OperationId,omitempty"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // Type - The type of the operation. Possible values include: 'OperationTypeInvalid', 'OperationTypePartitionDataLoss', 'OperationTypePartitionQuorumLoss', 'OperationTypePartitionRestart', 'OperationTypeNodeTransition' + Type OperationType `json:"Type,omitempty"` +} + +// PackageSharingPolicyInfo represents a policy for the package sharing. +type PackageSharingPolicyInfo struct { + // SharedPackageName - The name of code, configuration or data package that should be shared. + SharedPackageName *string `json:"SharedPackageName,omitempty"` + // PackageSharingScope - Represents the scope for PackageSharingPolicy. This is specified during DeployServicePackageToNode operation. Possible values include: 'PackageSharingPolicyScopeNone', 'PackageSharingPolicyScopeAll', 'PackageSharingPolicyScopeCode', 'PackageSharingPolicyScopeConfig', 'PackageSharingPolicyScopeData' + PackageSharingScope PackageSharingPolicyScope `json:"PackageSharingScope,omitempty"` +} + +// PagedApplicationInfoList the list of applications in the cluster. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedApplicationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of application information. + Items *[]ApplicationInfo `json:"Items,omitempty"` +} + +// PagedApplicationResourceDescriptionList the list of application resources. The list is paged when all of +// the results cannot fit in a single message. The next set of results can be obtained by executing the +// same query with the continuation token provided in this list. +type PagedApplicationResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]ApplicationResourceDescription `json:"Items,omitempty"` +} + +// PagedApplicationTypeInfoList the list of application types that are provisioned or being provisioned in +// the cluster. The list is paged when all of the results cannot fit in a single message. The next set of +// results can be obtained by executing the same query with the continuation token provided in this list. +type PagedApplicationTypeInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of application type information. + Items *[]ApplicationTypeInfo `json:"Items,omitempty"` +} + +// PagedBackupConfigurationInfoList the list of backup configuration information. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedBackupConfigurationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup configuration information. + Items *[]BasicBackupConfigurationInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedBackupConfigurationInfoList struct. +func (pbcil *PagedBackupConfigurationInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pbcil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicBackupConfigurationInfoArray(*v) + if err != nil { + return err + } + pbcil.Items = &items + } + } + } + + return nil +} + +// PagedBackupEntityList the list of backup entities that are being periodically backed. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedBackupEntityList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup entity information. + Items *[]BasicBackupEntity `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedBackupEntityList struct. +func (pbel *PagedBackupEntityList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pbel.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicBackupEntityArray(*v) + if err != nil { + return err + } + pbel.Items = &items + } + } + } + + return nil +} + +// PagedBackupInfoList the list of backups. The list is paged when all of the results cannot fit in a +// single message. The next set of results can be obtained by executing the same query with the +// continuation token provided in this list. +type PagedBackupInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of backup information. + Items *[]BackupInfo `json:"Items,omitempty"` +} + +// PagedBackupPolicyDescriptionList the list of backup policies configured in the cluster. The list is +// paged when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedBackupPolicyDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - The list of backup policies information. + Items *[]BackupPolicyDescription `json:"Items,omitempty"` +} + +// PagedComposeDeploymentStatusInfoList the list of compose deployments in the cluster. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedComposeDeploymentStatusInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of compose deployment status information. + Items *[]ComposeDeploymentStatusInfo `json:"Items,omitempty"` +} + +// PagedDeployedApplicationInfoList the list of deployed applications in activating, downloading, or active +// states on a node. +// The list is paged when all of the results cannot fit in a single message. +// The next set of results can be obtained by executing the same query with the continuation token provided +// in this list. +type PagedDeployedApplicationInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of deployed application information. + Items *[]DeployedApplicationInfo `json:"Items,omitempty"` +} + +// PagedGatewayResourceDescriptionList the list of gateway resources. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedGatewayResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]GatewayResourceDescription `json:"Items,omitempty"` +} + +// PagedNetworkResourceDescriptionList the list of network resources. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedNetworkResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]NetworkResourceDescription `json:"Items,omitempty"` +} + +// PagedNodeInfoList the list of nodes in the cluster. The list is paged when all of the results cannot fit +// in a single message. The next set of results can be obtained by executing the same query with the +// continuation token provided in this list. +type PagedNodeInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of node information. + Items *[]NodeInfo `json:"Items,omitempty"` +} + +// PagedPropertyInfoList the paged list of Service Fabric properties under a given name. The list is paged +// when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedPropertyInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // IsConsistent - Indicates whether any property under the given name has been modified during the enumeration. If there was a modification, this property value is false. + IsConsistent *bool `json:"IsConsistent,omitempty"` + // Properties - List of property information. + Properties *[]PropertyInfo `json:"Properties,omitempty"` +} + +// PagedReplicaInfoList the list of replicas in the cluster for a given partition. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedReplicaInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of replica information. + Items *[]BasicReplicaInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedReplicaInfoList struct. +func (pril *PagedReplicaInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pril.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicReplicaInfoArray(*v) + if err != nil { + return err + } + pril.Items = &items + } + } + } + + return nil +} + +// PagedSecretResourceDescriptionList the list of secret resources. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedSecretResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]SecretResourceDescription `json:"Items,omitempty"` +} + +// PagedSecretValueResourceDescriptionList the list of values of a secret resource, paged if the number of +// results exceeds the limits of a single message. The next set of results can be obtained by executing the +// same query with the continuation token provided in the previous page. +type PagedSecretValueResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]SecretValueResourceDescription `json:"Items,omitempty"` +} + +// PagedServiceInfoList the list of services in the cluster for an application. The list is paged when all +// of the results cannot fit in a single message. The next set of results can be obtained by executing the +// same query with the continuation token provided in this list. +type PagedServiceInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service information. + Items *[]BasicServiceInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedServiceInfoList struct. +func (psil *PagedServiceInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + psil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicServiceInfoArray(*v) + if err != nil { + return err + } + psil.Items = &items + } + } + } + + return nil +} + +// PagedServicePartitionInfoList the list of partition in the cluster for a service. The list is paged when +// all of the results cannot fit in a single message. The next set of results can be obtained by executing +// the same query with the continuation token provided in this list. +type PagedServicePartitionInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service partition information. + Items *[]BasicServicePartitionInfo `json:"Items,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PagedServicePartitionInfoList struct. +func (pspil *PagedServicePartitionInfoList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ContinuationToken": + if v != nil { + var continuationToken string + err = json.Unmarshal(*v, &continuationToken) + if err != nil { + return err + } + pspil.ContinuationToken = &continuationToken + } + case "Items": + if v != nil { + items, err := unmarshalBasicServicePartitionInfoArray(*v) + if err != nil { + return err + } + pspil.Items = &items + } + } + } + + return nil +} + +// PagedServiceReplicaDescriptionList the list of service resource replicas in the cluster. The list is +// paged when all of the results cannot fit in a single message. The next set of results can be obtained by +// executing the same query with the continuation token provided in this list. +type PagedServiceReplicaDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - List of service resource replica description. + Items *[]ServiceReplicaDescription `json:"Items,omitempty"` +} + +// PagedServiceResourceDescriptionList the list of service resources. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedServiceResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]ServiceResourceDescription `json:"Items,omitempty"` +} + +// PagedSubNameInfoList a paged list of Service Fabric names. The list is paged when all of the results +// cannot fit in a single message. The next set of results can be obtained by executing the same query with +// the continuation token provided in this list. +type PagedSubNameInfoList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // IsConsistent - Indicates whether any name under the given name has been modified during the enumeration. If there was a modification, this property value is false. + IsConsistent *bool `json:"IsConsistent,omitempty"` + // SubNames - List of the child names. + SubNames *[]string `json:"SubNames,omitempty"` +} + +// PagedVolumeResourceDescriptionList the list of volume resources. The list is paged when all of the +// results cannot fit in a single message. The next set of results can be obtained by executing the same +// query with the continuation token provided in this list. +type PagedVolumeResourceDescriptionList struct { + autorest.Response `json:"-"` + // ContinuationToken - The continuation token parameter is used to obtain next set of results. The continuation token is included in the response of the API when the results from the system do not fit in a single response. When this value is passed to the next API call, the API returns next set of results. If there are no further results, then the continuation token is not included in the response. + ContinuationToken *string `json:"ContinuationToken,omitempty"` + // Items - One page of the list. + Items *[]VolumeResourceDescription `json:"Items,omitempty"` +} + +// BasicPartitionAnalysisEvent represents the base for all Partition Analysis Events. +type BasicPartitionAnalysisEvent interface { + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) +} + +// PartitionAnalysisEvent represents the base for all Partition Analysis Events. +type PartitionAnalysisEvent struct { + // Metadata - Metadata about an Analysis Event. + Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionAnalysisEvent(body []byte) (BasicPartitionAnalysisEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + default: + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + } +} +func unmarshalBasicPartitionAnalysisEventArray(body []byte) ([]BasicPartitionAnalysisEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + paeArray := make([]BasicPartitionAnalysisEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pae, err := unmarshalBasicPartitionAnalysisEvent(*rawMessage) + if err != nil { + return nil, err + } + paeArray[index] = pae + } + return paeArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) MarshalJSON() ([]byte, error) { + pae.Kind = KindPartitionAnalysisEvent + objectMap := make(map[string]interface{}) + if pae.Metadata != nil { + objectMap["Metadata"] = pae.Metadata + } + if pae.PartitionID != nil { + objectMap["PartitionId"] = pae.PartitionID + } + if pae.EventInstanceID != nil { + objectMap["EventInstanceId"] = pae.EventInstanceID + } + if pae.Category != nil { + objectMap["Category"] = pae.Category + } + if pae.TimeStamp != nil { + objectMap["TimeStamp"] = pae.TimeStamp + } + if pae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = pae.HasCorrelatedEvents + } + if pae.Kind != "" { + objectMap["Kind"] = pae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return &pae, true +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return &pae, true +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &pae, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionAnalysisEvent. +func (pae PartitionAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &pae, true +} + +// PartitionBackupConfigurationInfo backup configuration information, for a specific partition, specifying +// what backup policy is being applied and suspend description, if any. +type PartitionBackupConfigurationInfo struct { + autorest.Response `json:"-"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - The partition ID indentifying the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + pbci.Kind = KindBasicBackupConfigurationInfoKindPartition + objectMap := make(map[string]interface{}) + if pbci.ServiceName != nil { + objectMap["ServiceName"] = pbci.ServiceName + } + if pbci.PartitionID != nil { + objectMap["PartitionId"] = pbci.PartitionID + } + if pbci.PolicyName != nil { + objectMap["PolicyName"] = pbci.PolicyName + } + if pbci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = pbci.PolicyInheritedFrom + } + if pbci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = pbci.SuspensionInfo + } + if pbci.Kind != "" { + objectMap["Kind"] = pbci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return nil, false +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return &pbci, true +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for PartitionBackupConfigurationInfo. +func (pbci PartitionBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &pbci, true +} + +// PartitionBackupEntity identifies the Service Fabric stateful partition which is being backed up. +type PartitionBackupEntity struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - The partition ID indentifying the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionBackupEntity. +func (pbe PartitionBackupEntity) MarshalJSON() ([]byte, error) { + pbe.EntityKind = EntityKindPartition1 + objectMap := make(map[string]interface{}) + if pbe.ServiceName != nil { + objectMap["ServiceName"] = pbe.ServiceName + } + if pbe.PartitionID != nil { + objectMap["PartitionId"] = pbe.PartitionID + } + if pbe.EntityKind != "" { + objectMap["EntityKind"] = pbe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return nil, false +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return &pbe, true +} + +// AsBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for PartitionBackupEntity. +func (pbe PartitionBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &pbe, true +} + +// PartitionDataLossProgress information about a partition data loss user-induced operation. +type PartitionDataLossProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // InvokeDataLossResult - Represents information about an operation in a terminal state (Completed or Faulted). + InvokeDataLossResult *InvokeDataLossResult `json:"InvokeDataLossResult,omitempty"` +} + +// BasicPartitionEvent represents the base for all Partition Events. +type BasicPartitionEvent interface { + AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) + AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) + AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) + AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) + AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) + AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) + AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) + AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) + AsPartitionEvent() (*PartitionEvent, bool) +} + +// PartitionEvent represents the base for all Partition Events. +type PartitionEvent struct { + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionEvent(body []byte) (BasicPartitionEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionAnalysisEvent): + var pae PartitionAnalysisEvent + err := json.Unmarshal(body, &pae) + return pae, err + case string(KindPartitionNewHealthReport): + var pnhre PartitionNewHealthReportEvent + err := json.Unmarshal(body, &pnhre) + return pnhre, err + case string(KindPartitionHealthReportExpired): + var phree PartitionHealthReportExpiredEvent + err := json.Unmarshal(body, &phree) + return phree, err + case string(KindPartitionReconfigured): + var pre PartitionReconfiguredEvent + err := json.Unmarshal(body, &pre) + return pre, err + case string(KindPartitionPrimaryMoveAnalysis): + var ppmae PartitionPrimaryMoveAnalysisEvent + err := json.Unmarshal(body, &ppmae) + return ppmae, err + case string(KindChaosPartitionSecondaryMoveScheduled): + var cpsmse ChaosPartitionSecondaryMoveScheduledEvent + err := json.Unmarshal(body, &cpsmse) + return cpsmse, err + case string(KindChaosPartitionPrimaryMoveScheduled): + var cppmse ChaosPartitionPrimaryMoveScheduledEvent + err := json.Unmarshal(body, &cppmse) + return cppmse, err + default: + var peVar PartitionEvent + err := json.Unmarshal(body, &peVar) + return peVar, err + } +} +func unmarshalBasicPartitionEventArray(body []byte) ([]BasicPartitionEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + peVarArray := make([]BasicPartitionEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + peVar, err := unmarshalBasicPartitionEvent(*rawMessage) + if err != nil { + return nil, err + } + peVarArray[index] = peVar + } + return peVarArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionEvent. +func (peVar PartitionEvent) MarshalJSON() ([]byte, error) { + peVar.Kind = KindPartitionEvent + objectMap := make(map[string]interface{}) + if peVar.PartitionID != nil { + objectMap["PartitionId"] = peVar.PartitionID + } + if peVar.EventInstanceID != nil { + objectMap["EventInstanceId"] = peVar.EventInstanceID + } + if peVar.Category != nil { + objectMap["Category"] = peVar.Category + } + if peVar.TimeStamp != nil { + objectMap["TimeStamp"] = peVar.TimeStamp + } + if peVar.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = peVar.HasCorrelatedEvents + } + if peVar.Kind != "" { + objectMap["Kind"] = peVar.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return &peVar, true +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &peVar, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionEvent. +func (peVar PartitionEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &peVar, true +} + +// PartitionHealth information about the health of a Service Fabric partition. +type PartitionHealth struct { + autorest.Response `json:"-"` + // PartitionID - ID of the partition whose health information is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaHealthStates - The list of replica health states associated with the partition. + ReplicaHealthStates *[]BasicReplicaHealthState `json:"ReplicaHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PartitionHealth struct. +func (ph *PartitionHealth) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "PartitionId": + if v != nil { + var partitionID uuid.UUID + err = json.Unmarshal(*v, &partitionID) + if err != nil { + return err + } + ph.PartitionID = &partitionID + } + case "ReplicaHealthStates": + if v != nil { + replicaHealthStates, err := unmarshalBasicReplicaHealthStateArray(*v) + if err != nil { + return err + } + ph.ReplicaHealthStates = &replicaHealthStates + } + case "AggregatedHealthState": + if v != nil { + var aggregatedHealthState HealthState + err = json.Unmarshal(*v, &aggregatedHealthState) + if err != nil { + return err + } + ph.AggregatedHealthState = aggregatedHealthState + } + case "HealthEvents": + if v != nil { + var healthEvents []HealthEvent + err = json.Unmarshal(*v, &healthEvents) + if err != nil { + return err + } + ph.HealthEvents = &healthEvents + } + case "UnhealthyEvaluations": + if v != nil { + var unhealthyEvaluations []HealthEvaluationWrapper + err = json.Unmarshal(*v, &unhealthyEvaluations) + if err != nil { + return err + } + ph.UnhealthyEvaluations = &unhealthyEvaluations + } + case "HealthStatistics": + if v != nil { + var healthStatistics HealthStatistics + err = json.Unmarshal(*v, &healthStatistics) + if err != nil { + return err + } + ph.HealthStatistics = &healthStatistics + } + } + } + + return nil +} + +// PartitionHealthEvaluation represents health evaluation for a partition, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type PartitionHealthEvaluation struct { + // PartitionID - Id of the partition whose health evaluation is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the partition. The types of the unhealthy evaluations can be ReplicasHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) MarshalJSON() ([]byte, error) { + phe.Kind = KindPartition + objectMap := make(map[string]interface{}) + if phe.PartitionID != nil { + objectMap["PartitionId"] = phe.PartitionID + } + if phe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations + } + if phe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = phe.AggregatedHealthState + } + if phe.Description != nil { + objectMap["Description"] = phe.Description + } + if phe.Kind != "" { + objectMap["Kind"] = phe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return &phe, true +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionHealthEvaluation. +func (phe PartitionHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &phe, true +} + +// PartitionHealthReportExpiredEvent partition Health Report Expired event. +type PartitionHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + phree.Kind = KindPartitionHealthReportExpired + objectMap := make(map[string]interface{}) + if phree.SourceID != nil { + objectMap["SourceId"] = phree.SourceID + } + if phree.Property != nil { + objectMap["Property"] = phree.Property + } + if phree.HealthState != nil { + objectMap["HealthState"] = phree.HealthState + } + if phree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = phree.TimeToLiveMs + } + if phree.SequenceNumber != nil { + objectMap["SequenceNumber"] = phree.SequenceNumber + } + if phree.Description != nil { + objectMap["Description"] = phree.Description + } + if phree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = phree.RemoveWhenExpired + } + if phree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = phree.SourceUtcTimestamp + } + if phree.PartitionID != nil { + objectMap["PartitionId"] = phree.PartitionID + } + if phree.EventInstanceID != nil { + objectMap["EventInstanceId"] = phree.EventInstanceID + } + if phree.Category != nil { + objectMap["Category"] = phree.Category + } + if phree.TimeStamp != nil { + objectMap["TimeStamp"] = phree.TimeStamp + } + if phree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = phree.HasCorrelatedEvents + } + if phree.Kind != "" { + objectMap["Kind"] = phree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &phree, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return &phree, true +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionHealthReportExpiredEvent. +func (phree PartitionHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &phree, true +} + +// PartitionHealthState represents the health state of a partition, which contains the partition identifier +// and its aggregated health state. +type PartitionHealthState struct { + // PartitionID - Id of the partition whose health state is described by this object. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// PartitionHealthStateChunk represents the health state chunk of a partition, which contains the partition +// ID, its aggregated health state and any replicas that respect the filters in the cluster health chunk +// query description. +type PartitionHealthStateChunk struct { + // PartitionID - The Id of the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaHealthStateChunks - The list of replica health state chunks belonging to the partition that respect the filters in the cluster health chunk query description. + ReplicaHealthStateChunks *ReplicaHealthStateChunkList `json:"ReplicaHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// PartitionHealthStateChunkList the list of partition health state chunks that respect the input filters +// in the chunk query description. +// Returned by get cluster health state chunks query as part of the parent application hierarchy. +type PartitionHealthStateChunkList struct { + // Items - The list of partition health state chunks that respect the input filters in the chunk query. + Items *[]PartitionHealthStateChunk `json:"Items,omitempty"` +} + +// PartitionHealthStateFilter defines matching criteria to determine whether a partition should be included +// as a child of a service in the cluster health chunk. +// The partitions are only returned if the parent entities match a filter specified in the cluster health +// chunk query description. The parent service and application must be included in the cluster health +// chunk. +// One filter can match zero, one or multiple partitions, depending on its properties. +type PartitionHealthStateFilter struct { + // PartitionIDFilter - ID of the partition that matches the filter. The filter is applied only to the specified partition, if it exists. + // If the partition doesn't exist, no partition is returned in the cluster health chunk based on this filter. + // If the partition exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all partitions that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + PartitionIDFilter *uuid.UUID `json:"PartitionIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the partitions. It allows selecting partitions if they match the desired health states. + // The possible values are integer value of one of the following health states. Only partitions that match the filter are returned. All partitions are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the partition ID is specified. If the filter has default value and partition ID is specified, the matching partition is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches partitions with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // ReplicaFilters - Defines a list of filters that specify which replicas to be included in the returned cluster health chunk as children of the parent partition. The replicas are returned only if the parent partition matches a filter. + // If the list is empty, no replicas are returned. All the replicas are used to evaluate the parent partition aggregated health state, regardless of the input filters. + // The partition filter may specify multiple replica filters. + // For example, it can specify a filter to return all replicas with health state Error and another filter to always include a replica identified by its replica id. + ReplicaFilters *[]ReplicaHealthStateFilter `json:"ReplicaFilters,omitempty"` +} + +// BasicPartitionInformation information about the partition identity, partitioning scheme and keys supported by it. +type BasicPartitionInformation interface { + AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) + AsNamedPartitionInformation() (*NamedPartitionInformation, bool) + AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) + AsPartitionInformation() (*PartitionInformation, bool) +} + +// PartitionInformation information about the partition identity, partitioning scheme and keys supported by it. +type PartitionInformation struct { + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +func unmarshalBasicPartitionInformation(body []byte) (BasicPartitionInformation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServicePartitionKind"] { + case string(ServicePartitionKindInt64Range1): + var i6rpi Int64RangePartitionInformation + err := json.Unmarshal(body, &i6rpi) + return i6rpi, err + case string(ServicePartitionKindNamed1): + var npi NamedPartitionInformation + err := json.Unmarshal(body, &npi) + return npi, err + case string(ServicePartitionKindSingleton1): + var spi SingletonPartitionInformation + err := json.Unmarshal(body, &spi) + return spi, err + default: + var pi PartitionInformation + err := json.Unmarshal(body, &pi) + return pi, err + } +} +func unmarshalBasicPartitionInformationArray(body []byte) ([]BasicPartitionInformation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + piArray := make([]BasicPartitionInformation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pi, err := unmarshalBasicPartitionInformation(*rawMessage) + if err != nil { + return nil, err + } + piArray[index] = pi + } + return piArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionInformation. +func (pi PartitionInformation) MarshalJSON() ([]byte, error) { + pi.ServicePartitionKind = ServicePartitionKindPartitionInformation + objectMap := make(map[string]interface{}) + if pi.ID != nil { + objectMap["Id"] = pi.ID + } + if pi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = pi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return nil, false +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return &pi, true +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for PartitionInformation. +func (pi PartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &pi, true +} + +// PartitionInstanceCountScaleMechanism represents a scaling mechanism for adding or removing instances of +// stateless service partition. +type PartitionInstanceCountScaleMechanism struct { + // MinInstanceCount - Minimum number of instances of the partition. + MinInstanceCount *int32 `json:"MinInstanceCount,omitempty"` + // MaxInstanceCount - Maximum number of instances of the partition. + MaxInstanceCount *int32 `json:"MaxInstanceCount,omitempty"` + // ScaleIncrement - The number of instances to add or remove during a scaling operation. + ScaleIncrement *int32 `json:"ScaleIncrement,omitempty"` + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) MarshalJSON() ([]byte, error) { + picsm.Kind = KindPartitionInstanceCount + objectMap := make(map[string]interface{}) + if picsm.MinInstanceCount != nil { + objectMap["MinInstanceCount"] = picsm.MinInstanceCount + } + if picsm.MaxInstanceCount != nil { + objectMap["MaxInstanceCount"] = picsm.MaxInstanceCount + } + if picsm.ScaleIncrement != nil { + objectMap["ScaleIncrement"] = picsm.ScaleIncrement + } + if picsm.Kind != "" { + objectMap["Kind"] = picsm.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return &picsm, true +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return nil, false +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return nil, false +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for PartitionInstanceCountScaleMechanism. +func (picsm PartitionInstanceCountScaleMechanism) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &picsm, true +} + +// PartitionLoadInformation represents load information for a partition, which contains the primary and +// secondary reported load metrics. +// In case there is no load reported, PartitionLoadInformation will contain the default load for the +// service of the partition. +// For default loads, LoadMetricReport's LastReportedUtc is set to 0. +type PartitionLoadInformation struct { + autorest.Response `json:"-"` + // PartitionID - Id of the partition. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // PrimaryLoadMetricReports - Array of load reports from the primary replica for this partition. + PrimaryLoadMetricReports *[]LoadMetricReport `json:"PrimaryLoadMetricReports,omitempty"` + // SecondaryLoadMetricReports - Array of aggregated load reports from all secondary replicas for this partition. + // Array only contains the latest reported load for each metric. + SecondaryLoadMetricReports *[]LoadMetricReport `json:"SecondaryLoadMetricReports,omitempty"` +} + +// PartitionNewHealthReportEvent partition Health Report Created event. +type PartitionNewHealthReportEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) MarshalJSON() ([]byte, error) { + pnhre.Kind = KindPartitionNewHealthReport + objectMap := make(map[string]interface{}) + if pnhre.SourceID != nil { + objectMap["SourceId"] = pnhre.SourceID + } + if pnhre.Property != nil { + objectMap["Property"] = pnhre.Property + } + if pnhre.HealthState != nil { + objectMap["HealthState"] = pnhre.HealthState + } + if pnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = pnhre.TimeToLiveMs + } + if pnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = pnhre.SequenceNumber + } + if pnhre.Description != nil { + objectMap["Description"] = pnhre.Description + } + if pnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = pnhre.RemoveWhenExpired + } + if pnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = pnhre.SourceUtcTimestamp + } + if pnhre.PartitionID != nil { + objectMap["PartitionId"] = pnhre.PartitionID + } + if pnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = pnhre.EventInstanceID + } + if pnhre.Category != nil { + objectMap["Category"] = pnhre.Category + } + if pnhre.TimeStamp != nil { + objectMap["TimeStamp"] = pnhre.TimeStamp + } + if pnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = pnhre.HasCorrelatedEvents + } + if pnhre.Kind != "" { + objectMap["Kind"] = pnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &pnhre, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return &pnhre, true +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionNewHealthReportEvent. +func (pnhre PartitionNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &pnhre, true +} + +// PartitionPrimaryMoveAnalysisEvent partition Primary Move Analysis event. +type PartitionPrimaryMoveAnalysisEvent struct { + // WhenMoveCompleted - Time when the move was completed. + WhenMoveCompleted *date.Time `json:"WhenMoveCompleted,omitempty"` + // PreviousNode - The name of a Service Fabric node. + PreviousNode *string `json:"PreviousNode,omitempty"` + // CurrentNode - The name of a Service Fabric node. + CurrentNode *string `json:"CurrentNode,omitempty"` + // MoveReason - Move reason. + MoveReason *string `json:"MoveReason,omitempty"` + // RelevantTraces - Relevant traces. + RelevantTraces *string `json:"RelevantTraces,omitempty"` + // Metadata - Metadata about an Analysis Event. + Metadata *AnalysisEventMetadata `json:"Metadata,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) MarshalJSON() ([]byte, error) { + ppmae.Kind = KindPartitionPrimaryMoveAnalysis + objectMap := make(map[string]interface{}) + if ppmae.WhenMoveCompleted != nil { + objectMap["WhenMoveCompleted"] = ppmae.WhenMoveCompleted + } + if ppmae.PreviousNode != nil { + objectMap["PreviousNode"] = ppmae.PreviousNode + } + if ppmae.CurrentNode != nil { + objectMap["CurrentNode"] = ppmae.CurrentNode + } + if ppmae.MoveReason != nil { + objectMap["MoveReason"] = ppmae.MoveReason + } + if ppmae.RelevantTraces != nil { + objectMap["RelevantTraces"] = ppmae.RelevantTraces + } + if ppmae.Metadata != nil { + objectMap["Metadata"] = ppmae.Metadata + } + if ppmae.PartitionID != nil { + objectMap["PartitionId"] = ppmae.PartitionID + } + if ppmae.EventInstanceID != nil { + objectMap["EventInstanceId"] = ppmae.EventInstanceID + } + if ppmae.Category != nil { + objectMap["Category"] = ppmae.Category + } + if ppmae.TimeStamp != nil { + objectMap["TimeStamp"] = ppmae.TimeStamp + } + if ppmae.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = ppmae.HasCorrelatedEvents + } + if ppmae.Kind != "" { + objectMap["Kind"] = ppmae.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return &ppmae, true +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &ppmae, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return &ppmae, true +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionPrimaryMoveAnalysisEvent. +func (ppmae PartitionPrimaryMoveAnalysisEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &ppmae, true +} + +// PartitionQuorumLossProgress information about a partition quorum loss user-induced operation. +type PartitionQuorumLossProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // InvokeQuorumLossResult - Represents information about an operation in a terminal state (Completed or Faulted). + InvokeQuorumLossResult *InvokeQuorumLossResult `json:"InvokeQuorumLossResult,omitempty"` +} + +// PartitionReconfiguredEvent partition Reconfiguration event. +type PartitionReconfiguredEvent struct { + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // NodeInstanceID - Id of Node instance. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` + // ServiceType - Type of Service. + ServiceType *string `json:"ServiceType,omitempty"` + // CcEpochDataLossVersion - CcEpochDataLoss version. + CcEpochDataLossVersion *int64 `json:"CcEpochDataLossVersion,omitempty"` + // CcEpochConfigVersion - CcEpochConfig version. + CcEpochConfigVersion *int64 `json:"CcEpochConfigVersion,omitempty"` + // ReconfigType - Type of reconfiguration. + ReconfigType *string `json:"ReconfigType,omitempty"` + // Result - Describes reconfiguration result. + Result *string `json:"Result,omitempty"` + // Phase0DurationMs - Duration of Phase0 in milli-seconds. + Phase0DurationMs *float64 `json:"Phase0DurationMs,omitempty"` + // Phase1DurationMs - Duration of Phase1 in milli-seconds. + Phase1DurationMs *float64 `json:"Phase1DurationMs,omitempty"` + // Phase2DurationMs - Duration of Phase2 in milli-seconds. + Phase2DurationMs *float64 `json:"Phase2DurationMs,omitempty"` + // Phase3DurationMs - Duration of Phase3 in milli-seconds. + Phase3DurationMs *float64 `json:"Phase3DurationMs,omitempty"` + // Phase4DurationMs - Duration of Phase4 in milli-seconds. + Phase4DurationMs *float64 `json:"Phase4DurationMs,omitempty"` + // TotalDurationMs - Total duration in milli-seconds. + TotalDurationMs *float64 `json:"TotalDurationMs,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) MarshalJSON() ([]byte, error) { + pre.Kind = KindPartitionReconfigured + objectMap := make(map[string]interface{}) + if pre.NodeName != nil { + objectMap["NodeName"] = pre.NodeName + } + if pre.NodeInstanceID != nil { + objectMap["NodeInstanceId"] = pre.NodeInstanceID + } + if pre.ServiceType != nil { + objectMap["ServiceType"] = pre.ServiceType + } + if pre.CcEpochDataLossVersion != nil { + objectMap["CcEpochDataLossVersion"] = pre.CcEpochDataLossVersion + } + if pre.CcEpochConfigVersion != nil { + objectMap["CcEpochConfigVersion"] = pre.CcEpochConfigVersion + } + if pre.ReconfigType != nil { + objectMap["ReconfigType"] = pre.ReconfigType + } + if pre.Result != nil { + objectMap["Result"] = pre.Result + } + if pre.Phase0DurationMs != nil { + objectMap["Phase0DurationMs"] = pre.Phase0DurationMs + } + if pre.Phase1DurationMs != nil { + objectMap["Phase1DurationMs"] = pre.Phase1DurationMs + } + if pre.Phase2DurationMs != nil { + objectMap["Phase2DurationMs"] = pre.Phase2DurationMs + } + if pre.Phase3DurationMs != nil { + objectMap["Phase3DurationMs"] = pre.Phase3DurationMs + } + if pre.Phase4DurationMs != nil { + objectMap["Phase4DurationMs"] = pre.Phase4DurationMs + } + if pre.TotalDurationMs != nil { + objectMap["TotalDurationMs"] = pre.TotalDurationMs + } + if pre.PartitionID != nil { + objectMap["PartitionId"] = pre.PartitionID + } + if pre.EventInstanceID != nil { + objectMap["EventInstanceId"] = pre.EventInstanceID + } + if pre.Category != nil { + objectMap["Category"] = pre.Category + } + if pre.TimeStamp != nil { + objectMap["TimeStamp"] = pre.TimeStamp + } + if pre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = pre.HasCorrelatedEvents + } + if pre.Kind != "" { + objectMap["Kind"] = pre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return &pre, true +} + +// AsReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return &pre, true +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for PartitionReconfiguredEvent. +func (pre PartitionReconfiguredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &pre, true +} + +// PartitionRestartProgress information about a partition restart user-induced operation. +type PartitionRestartProgress struct { + autorest.Response `json:"-"` + // State - The state of the operation. Possible values include: 'OperationStateInvalid', 'OperationStateRunning', 'OperationStateRollingBack', 'OperationStateCompleted', 'OperationStateFaulted', 'OperationStateCancelled', 'OperationStateForceCancelled' + State OperationState `json:"State,omitempty"` + // RestartPartitionResult - Represents information about an operation in a terminal state (Completed or Faulted). + RestartPartitionResult *RestartPartitionResult `json:"RestartPartitionResult,omitempty"` +} + +// BasicPartitionSafetyCheck represents a safety check for the service partition being performed by service fabric +// before continuing with operations. +type BasicPartitionSafetyCheck interface { + AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) + AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) + AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) + AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) + AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) + AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) + AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) +} + +// PartitionSafetyCheck represents a safety check for the service partition being performed by service fabric +// before continuing with operations. +type PartitionSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +func unmarshalBasicPartitionSafetyCheck(body []byte) (BasicPartitionSafetyCheck, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindEnsureAvailability): + var easc EnsureAvailabilitySafetyCheck + err := json.Unmarshal(body, &easc) + return easc, err + case string(KindEnsurePartitionQuorum): + var epqsc EnsurePartitionQurumSafetyCheck + err := json.Unmarshal(body, &epqsc) + return epqsc, err + case string(KindWaitForInbuildReplica): + var wfirsc WaitForInbuildReplicaSafetyCheck + err := json.Unmarshal(body, &wfirsc) + return wfirsc, err + case string(KindWaitForPrimaryPlacement): + var wfppsc WaitForPrimaryPlacementSafetyCheck + err := json.Unmarshal(body, &wfppsc) + return wfppsc, err + case string(KindWaitForPrimarySwap): + var wfpssc WaitForPrimarySwapSafetyCheck + err := json.Unmarshal(body, &wfpssc) + return wfpssc, err + case string(KindWaitForReconfiguration): + var wfrsc WaitForReconfigurationSafetyCheck + err := json.Unmarshal(body, &wfrsc) + return wfrsc, err + default: + var psc PartitionSafetyCheck + err := json.Unmarshal(body, &psc) + return psc, err + } +} +func unmarshalBasicPartitionSafetyCheckArray(body []byte) ([]BasicPartitionSafetyCheck, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pscArray := make([]BasicPartitionSafetyCheck, len(rawMessages)) + + for index, rawMessage := range rawMessages { + psc, err := unmarshalBasicPartitionSafetyCheck(*rawMessage) + if err != nil { + return nil, err + } + pscArray[index] = psc + } + return pscArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) MarshalJSON() ([]byte, error) { + psc.Kind = KindPartitionSafetyCheck + objectMap := make(map[string]interface{}) + if psc.PartitionID != nil { + objectMap["PartitionId"] = psc.PartitionID + } + if psc.Kind != "" { + objectMap["Kind"] = psc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return &psc, true +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &psc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for PartitionSafetyCheck. +func (psc PartitionSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &psc, true +} + +// BasicPartitionSchemeDescription describes how the service is partitioned. +type BasicPartitionSchemeDescription interface { + AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) + AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) + AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) + AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) +} + +// PartitionSchemeDescription describes how the service is partitioned. +type PartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +func unmarshalBasicPartitionSchemeDescription(body []byte) (BasicPartitionSchemeDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["PartitionScheme"] { + case string(PartitionSchemeNamed1): + var npsd NamedPartitionSchemeDescription + err := json.Unmarshal(body, &npsd) + return npsd, err + case string(PartitionSchemeSingleton1): + var spsd SingletonPartitionSchemeDescription + err := json.Unmarshal(body, &spsd) + return spsd, err + case string(PartitionSchemeUniformInt64Range1): + var ui6rpsd UniformInt64RangePartitionSchemeDescription + err := json.Unmarshal(body, &ui6rpsd) + return ui6rpsd, err + default: + var psd PartitionSchemeDescription + err := json.Unmarshal(body, &psd) + return psd, err + } +} +func unmarshalBasicPartitionSchemeDescriptionArray(body []byte) ([]BasicPartitionSchemeDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + psdArray := make([]BasicPartitionSchemeDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + psd, err := unmarshalBasicPartitionSchemeDescription(*rawMessage) + if err != nil { + return nil, err + } + psdArray[index] = psd + } + return psdArray, nil +} + +// MarshalJSON is the custom marshaler for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) MarshalJSON() ([]byte, error) { + psd.PartitionScheme = PartitionSchemePartitionSchemeDescription + objectMap := make(map[string]interface{}) + if psd.PartitionScheme != "" { + objectMap["PartitionScheme"] = psd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return &psd, true +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for PartitionSchemeDescription. +func (psd PartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &psd, true +} + +// PartitionsHealthEvaluation represents health evaluation for the partitions of a service, containing +// health evaluations for each unhealthy partition that impacts current aggregated health state. Can be +// returned when evaluating service health and the aggregated health state is either Error or Warning. +type PartitionsHealthEvaluation struct { + // MaxPercentUnhealthyPartitionsPerService - Maximum allowed percentage of unhealthy partitions per service from the ServiceTypeHealthPolicy. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"` + // TotalCount - Total number of partitions of the service from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy PartitionHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) MarshalJSON() ([]byte, error) { + phe.Kind = KindPartitions + objectMap := make(map[string]interface{}) + if phe.MaxPercentUnhealthyPartitionsPerService != nil { + objectMap["MaxPercentUnhealthyPartitionsPerService"] = phe.MaxPercentUnhealthyPartitionsPerService + } + if phe.TotalCount != nil { + objectMap["TotalCount"] = phe.TotalCount + } + if phe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = phe.UnhealthyEvaluations + } + if phe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = phe.AggregatedHealthState + } + if phe.Description != nil { + objectMap["Description"] = phe.Description + } + if phe.Kind != "" { + objectMap["Kind"] = phe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return &phe, true +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for PartitionsHealthEvaluation. +func (phe PartitionsHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &phe, true +} + +// PrimaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning +// in a Primary role. +type PrimaryReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the primary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // RemoteReplicators - The status of all the active and idle secondary replicators that the primary is aware of. + RemoteReplicators *[]RemoteReplicatorStatus `json:"RemoteReplicators,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) MarshalJSON() ([]byte, error) { + prs.Kind = KindPrimary + objectMap := make(map[string]interface{}) + if prs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = prs.ReplicationQueueStatus + } + if prs.RemoteReplicators != nil { + objectMap["RemoteReplicators"] = prs.RemoteReplicators + } + if prs.Kind != "" { + objectMap["Kind"] = prs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return &prs, true +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for PrimaryReplicatorStatus. +func (prs PrimaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &prs, true +} + +// PropertyBatchDescriptionList describes a list of property batch operations to be executed. Either all or +// none of the operations will be committed. +type PropertyBatchDescriptionList struct { + // Operations - A list of the property batch operations to be executed. + Operations *[]BasicPropertyBatchOperation `json:"Operations,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyBatchDescriptionList struct. +func (pbdl *PropertyBatchDescriptionList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Operations": + if v != nil { + operations, err := unmarshalBasicPropertyBatchOperationArray(*v) + if err != nil { + return err + } + pbdl.Operations = &operations + } + } + } + + return nil +} + +// BasicPropertyBatchInfo information about the results of a property batch. +type BasicPropertyBatchInfo interface { + AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) + AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) + AsPropertyBatchInfo() (*PropertyBatchInfo, bool) +} + +// PropertyBatchInfo information about the results of a property batch. +type PropertyBatchInfo struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyBatchInfo(body []byte) (BasicPropertyBatchInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindSuccessful): + var spbi SuccessfulPropertyBatchInfo + err := json.Unmarshal(body, &spbi) + return spbi, err + case string(KindFailed): + var fpbi FailedPropertyBatchInfo + err := json.Unmarshal(body, &fpbi) + return fpbi, err + default: + var pbi PropertyBatchInfo + err := json.Unmarshal(body, &pbi) + return pbi, err + } +} +func unmarshalBasicPropertyBatchInfoArray(body []byte) ([]BasicPropertyBatchInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pbiArray := make([]BasicPropertyBatchInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pbi, err := unmarshalBasicPropertyBatchInfo(*rawMessage) + if err != nil { + return nil, err + } + pbiArray[index] = pbi + } + return pbiArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyBatchInfo. +func (pbi PropertyBatchInfo) MarshalJSON() ([]byte, error) { + pbi.Kind = KindPropertyBatchInfo + objectMap := make(map[string]interface{}) + if pbi.Kind != "" { + objectMap["Kind"] = pbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return nil, false +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return nil, false +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return &pbi, true +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for PropertyBatchInfo. +func (pbi PropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &pbi, true +} + +// PropertyBatchInfoModel ... +type PropertyBatchInfoModel struct { + autorest.Response `json:"-"` + Value BasicPropertyBatchInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyBatchInfoModel struct. +func (pbim *PropertyBatchInfoModel) UnmarshalJSON(body []byte) error { + pbi, err := unmarshalBasicPropertyBatchInfo(body) + if err != nil { + return err + } + pbim.Value = pbi + + return nil +} + +// BasicPropertyBatchOperation represents the base type for property operations that can be put into a batch and +// submitted. +type BasicPropertyBatchOperation interface { + AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) + AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) + AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) + AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) + AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) + AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) + AsPropertyBatchOperation() (*PropertyBatchOperation, bool) +} + +// PropertyBatchOperation represents the base type for property operations that can be put into a batch and +// submitted. +type PropertyBatchOperation struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyBatchOperation(body []byte) (BasicPropertyBatchOperation, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindCheckExists): + var cepbo CheckExistsPropertyBatchOperation + err := json.Unmarshal(body, &cepbo) + return cepbo, err + case string(KindCheckSequence): + var cspbo CheckSequencePropertyBatchOperation + err := json.Unmarshal(body, &cspbo) + return cspbo, err + case string(KindCheckValue): + var cvpbo CheckValuePropertyBatchOperation + err := json.Unmarshal(body, &cvpbo) + return cvpbo, err + case string(KindDelete): + var dpbo DeletePropertyBatchOperation + err := json.Unmarshal(body, &dpbo) + return dpbo, err + case string(KindGet): + var gpbo GetPropertyBatchOperation + err := json.Unmarshal(body, &gpbo) + return gpbo, err + case string(KindPut): + var ppbo PutPropertyBatchOperation + err := json.Unmarshal(body, &ppbo) + return ppbo, err + default: + var pbo PropertyBatchOperation + err := json.Unmarshal(body, &pbo) + return pbo, err + } +} +func unmarshalBasicPropertyBatchOperationArray(body []byte) ([]BasicPropertyBatchOperation, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pboArray := make([]BasicPropertyBatchOperation, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pbo, err := unmarshalBasicPropertyBatchOperation(*rawMessage) + if err != nil { + return nil, err + } + pboArray[index] = pbo + } + return pboArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyBatchOperation. +func (pbo PropertyBatchOperation) MarshalJSON() ([]byte, error) { + pbo.Kind = KindPropertyBatchOperation + objectMap := make(map[string]interface{}) + if pbo.PropertyName != nil { + objectMap["PropertyName"] = pbo.PropertyName + } + if pbo.Kind != "" { + objectMap["Kind"] = pbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return nil, false +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return &pbo, true +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PropertyBatchOperation. +func (pbo PropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &pbo, true +} + +// PropertyDescription description of a Service Fabric property. +type PropertyDescription struct { + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyDescription struct. +func (pd *PropertyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + pd.PropertyName = &propertyName + } + case "CustomTypeId": + if v != nil { + var customTypeID string + err = json.Unmarshal(*v, &customTypeID) + if err != nil { + return err + } + pd.CustomTypeID = &customTypeID + } + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + pd.Value = value + } + } + } + + return nil +} + +// PropertyInfo information about a Service Fabric property. +type PropertyInfo struct { + autorest.Response `json:"-"` + // Name - The name of the Service Fabric property. + Name *string `json:"Name,omitempty"` + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // Metadata - The metadata associated with a property, including the property's name. + Metadata *PropertyMetadata `json:"Metadata,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for PropertyInfo struct. +func (pi *PropertyInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + pi.Name = &name + } + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + pi.Value = value + } + case "Metadata": + if v != nil { + var metadata PropertyMetadata + err = json.Unmarshal(*v, &metadata) + if err != nil { + return err + } + pi.Metadata = &metadata + } + } + } + + return nil +} + +// PropertyMetadata the metadata associated with a property, including the property's name. +type PropertyMetadata struct { + // TypeID - The kind of property, determined by the type of data. Following are the possible values. Possible values include: 'PropertyValueKindInvalid', 'PropertyValueKindBinary', 'PropertyValueKindInt64', 'PropertyValueKindDouble', 'PropertyValueKindString', 'PropertyValueKindGUID' + TypeID PropertyValueKind `json:"TypeId,omitempty"` + // CustomTypeID - The property's custom type ID. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // Parent - The name of the parent Service Fabric Name for the property. It could be thought of as the name-space/table under which the property exists. + Parent *string `json:"Parent,omitempty"` + // SizeInBytes - The length of the serialized property value. + SizeInBytes *int32 `json:"SizeInBytes,omitempty"` + // LastModifiedUtcTimestamp - Represents when the Property was last modified. Only write operations will cause this field to be updated. + LastModifiedUtcTimestamp *date.Time `json:"LastModifiedUtcTimestamp,omitempty"` + // SequenceNumber - The version of the property. Every time a property is modified, its sequence number is increased. + SequenceNumber *string `json:"SequenceNumber,omitempty"` +} + +// BasicPropertyValue describes a Service Fabric property value. +type BasicPropertyValue interface { + AsBinaryPropertyValue() (*BinaryPropertyValue, bool) + AsInt64PropertyValue() (*Int64PropertyValue, bool) + AsDoublePropertyValue() (*DoublePropertyValue, bool) + AsStringPropertyValue() (*StringPropertyValue, bool) + AsGUIDPropertyValue() (*GUIDPropertyValue, bool) + AsPropertyValue() (*PropertyValue, bool) +} + +// PropertyValue describes a Service Fabric property value. +type PropertyValue struct { + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +func unmarshalBasicPropertyValue(body []byte) (BasicPropertyValue, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBinary): + var bpv BinaryPropertyValue + err := json.Unmarshal(body, &bpv) + return bpv, err + case string(KindInt64): + var i6pv Int64PropertyValue + err := json.Unmarshal(body, &i6pv) + return i6pv, err + case string(KindDouble): + var dpv DoublePropertyValue + err := json.Unmarshal(body, &dpv) + return dpv, err + case string(KindString): + var spv StringPropertyValue + err := json.Unmarshal(body, &spv) + return spv, err + case string(KindGUID): + var gpv GUIDPropertyValue + err := json.Unmarshal(body, &gpv) + return gpv, err + default: + var pv PropertyValue + err := json.Unmarshal(body, &pv) + return pv, err + } +} +func unmarshalBasicPropertyValueArray(body []byte) ([]BasicPropertyValue, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + pvArray := make([]BasicPropertyValue, len(rawMessages)) + + for index, rawMessage := range rawMessages { + pv, err := unmarshalBasicPropertyValue(*rawMessage) + if err != nil { + return nil, err + } + pvArray[index] = pv + } + return pvArray, nil +} + +// MarshalJSON is the custom marshaler for PropertyValue. +func (pv PropertyValue) MarshalJSON() ([]byte, error) { + pv.Kind = KindPropertyValue + objectMap := make(map[string]interface{}) + if pv.Kind != "" { + objectMap["Kind"] = pv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return nil, false +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return &pv, true +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for PropertyValue. +func (pv PropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &pv, true +} + +// ProvisionApplicationTypeDescription describes the operation to register or provision an application type +// using an application package uploaded to the Service Fabric image store. +type ProvisionApplicationTypeDescription struct { + // ApplicationTypeBuildPath - The relative path for the application package in the image store specified during the prior upload operation. + ApplicationTypeBuildPath *string `json:"ApplicationTypeBuildPath,omitempty"` + // ApplicationPackageCleanupPolicy - The kind of action that needs to be taken for cleaning up the application package after successful provision. Possible values include: 'ApplicationPackageCleanupPolicyInvalid', 'ApplicationPackageCleanupPolicyDefault', 'ApplicationPackageCleanupPolicyAutomatic', 'ApplicationPackageCleanupPolicyManual' + ApplicationPackageCleanupPolicy ApplicationPackageCleanupPolicy `json:"ApplicationPackageCleanupPolicy,omitempty"` + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) MarshalJSON() ([]byte, error) { + patd.Kind = KindImageStorePath + objectMap := make(map[string]interface{}) + if patd.ApplicationTypeBuildPath != nil { + objectMap["ApplicationTypeBuildPath"] = patd.ApplicationTypeBuildPath + } + if patd.ApplicationPackageCleanupPolicy != "" { + objectMap["ApplicationPackageCleanupPolicy"] = patd.ApplicationPackageCleanupPolicy + } + if patd.Async != nil { + objectMap["Async"] = patd.Async + } + if patd.Kind != "" { + objectMap["Kind"] = patd.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return &patd, true +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return nil, false +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescription. +func (patd ProvisionApplicationTypeDescription) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &patd, true +} + +// BasicProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if the +// operation needs to be asynchronous or not. Supported types of provision operations are from either image store or +// external store. +type BasicProvisionApplicationTypeDescriptionBase interface { + AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) + AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) + AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) +} + +// ProvisionApplicationTypeDescriptionBase represents the type of registration or provision requested, and if +// the operation needs to be asynchronous or not. Supported types of provision operations are from either image +// store or external store. +type ProvisionApplicationTypeDescriptionBase struct { + // Async - Indicates whether or not provisioning should occur asynchronously. When set to true, the provision operation returns when the request is accepted by the system, and the provision operation continues without any timeout limit. The default value is false. For large application packages, we recommend setting the value to true. + Async *bool `json:"Async,omitempty"` + // Kind - Possible values include: 'KindProvisionApplicationTypeDescriptionBase', 'KindImageStorePath', 'KindExternalStore' + Kind KindBasicProvisionApplicationTypeDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicProvisionApplicationTypeDescriptionBase(body []byte) (BasicProvisionApplicationTypeDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindImageStorePath): + var patd ProvisionApplicationTypeDescription + err := json.Unmarshal(body, &patd) + return patd, err + case string(KindExternalStore): + var espatd ExternalStoreProvisionApplicationTypeDescription + err := json.Unmarshal(body, &espatd) + return espatd, err + default: + var patdb ProvisionApplicationTypeDescriptionBase + err := json.Unmarshal(body, &patdb) + return patdb, err + } +} +func unmarshalBasicProvisionApplicationTypeDescriptionBaseArray(body []byte) ([]BasicProvisionApplicationTypeDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + patdbArray := make([]BasicProvisionApplicationTypeDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + patdb, err := unmarshalBasicProvisionApplicationTypeDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + patdbArray[index] = patdb + } + return patdbArray, nil +} + +// MarshalJSON is the custom marshaler for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) MarshalJSON() ([]byte, error) { + patdb.Kind = KindProvisionApplicationTypeDescriptionBase + objectMap := make(map[string]interface{}) + if patdb.Async != nil { + objectMap["Async"] = patdb.Async + } + if patdb.Kind != "" { + objectMap["Kind"] = patdb.Kind + } + return json.Marshal(objectMap) +} + +// AsProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescription() (*ProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsExternalStoreProvisionApplicationTypeDescription is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsExternalStoreProvisionApplicationTypeDescription() (*ExternalStoreProvisionApplicationTypeDescription, bool) { + return nil, false +} + +// AsProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsProvisionApplicationTypeDescriptionBase() (*ProvisionApplicationTypeDescriptionBase, bool) { + return &patdb, true +} + +// AsBasicProvisionApplicationTypeDescriptionBase is the BasicProvisionApplicationTypeDescriptionBase implementation for ProvisionApplicationTypeDescriptionBase. +func (patdb ProvisionApplicationTypeDescriptionBase) AsBasicProvisionApplicationTypeDescriptionBase() (BasicProvisionApplicationTypeDescriptionBase, bool) { + return &patdb, true +} + +// ProvisionFabricDescription describes the parameters for provisioning a cluster. +type ProvisionFabricDescription struct { + // CodeFilePath - The cluster code package file path. + CodeFilePath *string `json:"CodeFilePath,omitempty"` + // ClusterManifestFilePath - The cluster manifest file path. + ClusterManifestFilePath *string `json:"ClusterManifestFilePath,omitempty"` +} + +// PutPropertyBatchOperation puts the specified property under the specified name. +// Note that if one PropertyBatchOperation in a PropertyBatch fails, +// the entire batch fails and cannot be committed in a transactional manner. +type PutPropertyBatchOperation struct { + // Value - Describes a Service Fabric property value. + Value BasicPropertyValue `json:"Value,omitempty"` + // CustomTypeID - The property's custom type ID. Using this property, the user is able to tag the type of the value of the property. + CustomTypeID *string `json:"CustomTypeId,omitempty"` + // PropertyName - The name of the Service Fabric property. + PropertyName *string `json:"PropertyName,omitempty"` + // Kind - Possible values include: 'KindPropertyBatchOperation', 'KindCheckExists', 'KindCheckSequence', 'KindCheckValue', 'KindDelete', 'KindGet', 'KindPut' + Kind KindBasicPropertyBatchOperation `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) MarshalJSON() ([]byte, error) { + ppbo.Kind = KindPut + objectMap := make(map[string]interface{}) + objectMap["Value"] = ppbo.Value + if ppbo.CustomTypeID != nil { + objectMap["CustomTypeId"] = ppbo.CustomTypeID + } + if ppbo.PropertyName != nil { + objectMap["PropertyName"] = ppbo.PropertyName + } + if ppbo.Kind != "" { + objectMap["Kind"] = ppbo.Kind + } + return json.Marshal(objectMap) +} + +// AsCheckExistsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckExistsPropertyBatchOperation() (*CheckExistsPropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckSequencePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckSequencePropertyBatchOperation() (*CheckSequencePropertyBatchOperation, bool) { + return nil, false +} + +// AsCheckValuePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsCheckValuePropertyBatchOperation() (*CheckValuePropertyBatchOperation, bool) { + return nil, false +} + +// AsDeletePropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsDeletePropertyBatchOperation() (*DeletePropertyBatchOperation, bool) { + return nil, false +} + +// AsGetPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsGetPropertyBatchOperation() (*GetPropertyBatchOperation, bool) { + return nil, false +} + +// AsPutPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsPutPropertyBatchOperation() (*PutPropertyBatchOperation, bool) { + return &ppbo, true +} + +// AsPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsPropertyBatchOperation() (*PropertyBatchOperation, bool) { + return nil, false +} + +// AsBasicPropertyBatchOperation is the BasicPropertyBatchOperation implementation for PutPropertyBatchOperation. +func (ppbo PutPropertyBatchOperation) AsBasicPropertyBatchOperation() (BasicPropertyBatchOperation, bool) { + return &ppbo, true +} + +// UnmarshalJSON is the custom unmarshaler for PutPropertyBatchOperation struct. +func (ppbo *PutPropertyBatchOperation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Value": + if v != nil { + value, err := unmarshalBasicPropertyValue(*v) + if err != nil { + return err + } + ppbo.Value = value + } + case "CustomTypeId": + if v != nil { + var customTypeID string + err = json.Unmarshal(*v, &customTypeID) + if err != nil { + return err + } + ppbo.CustomTypeID = &customTypeID + } + case "PropertyName": + if v != nil { + var propertyName string + err = json.Unmarshal(*v, &propertyName) + if err != nil { + return err + } + ppbo.PropertyName = &propertyName + } + case "Kind": + if v != nil { + var kind KindBasicPropertyBatchOperation + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + ppbo.Kind = kind + } + } + } + + return nil +} + +// ReconfigurationInformation information about current reconfiguration like phase, type, previous +// configuration role of replica and reconfiguration start date time. +type ReconfigurationInformation struct { + // PreviousConfigurationRole - Replica role before reconfiguration started. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + PreviousConfigurationRole ReplicaRole `json:"PreviousConfigurationRole,omitempty"` + // ReconfigurationPhase - Current phase of ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'ReconfigurationPhaseUnknown', 'ReconfigurationPhaseNone', 'ReconfigurationPhasePhase0', 'ReconfigurationPhasePhase1', 'ReconfigurationPhasePhase2', 'ReconfigurationPhasePhase3', 'ReconfigurationPhasePhase4', 'ReconfigurationPhaseAbortPhaseZero' + ReconfigurationPhase ReconfigurationPhase `json:"ReconfigurationPhase,omitempty"` + // ReconfigurationType - Type of current ongoing reconfiguration. If no reconfiguration is taking place then this value will be "None". Possible values include: 'ReconfigurationTypeUnknown', 'ReconfigurationTypeSwapPrimary', 'ReconfigurationTypeFailover', 'ReconfigurationTypeOther' + ReconfigurationType ReconfigurationType `json:"ReconfigurationType,omitempty"` + // ReconfigurationStartTimeUtc - Start time (in UTC) of the ongoing reconfiguration. If no reconfiguration is taking place then this value will be zero date-time. + ReconfigurationStartTimeUtc *date.Time `json:"ReconfigurationStartTimeUtc,omitempty"` +} + +// RegistryCredential credential information to connect to container registry. +type RegistryCredential struct { + // RegistryUserName - The user name to connect to container registry. + RegistryUserName *string `json:"RegistryUserName,omitempty"` + // RegistryPassword - The password for supplied username to connect to container registry. + RegistryPassword *string `json:"RegistryPassword,omitempty"` + // PasswordEncrypted - Indicates that supplied container registry password is encrypted. + PasswordEncrypted *bool `json:"PasswordEncrypted,omitempty"` +} + +// ReliableCollectionsRef specifying this parameter adds support for reliable collections +type ReliableCollectionsRef struct { + // Name - Name of ReliableCollection resource. Right now it's not used and you can use any string. + Name *string `json:"name,omitempty"` + // DoNotPersistState - False (the default) if ReliableCollections state is persisted to disk as usual. True if you do not want to persist state, in which case replication is still enabled and you can use ReliableCollections as distributed cache. + DoNotPersistState *bool `json:"doNotPersistState,omitempty"` +} + +// RemoteReplicatorAcknowledgementDetail provides various statistics of the acknowledgements that are being +// received from the remote replicator. +type RemoteReplicatorAcknowledgementDetail struct { + // AverageReceiveDuration - Represents the average duration it takes for the remote replicator to receive an operation. + AverageReceiveDuration *string `json:"AverageReceiveDuration,omitempty"` + // AverageApplyDuration - Represents the average duration it takes for the remote replicator to apply an operation. This usually entails writing the operation to disk. + AverageApplyDuration *string `json:"AverageApplyDuration,omitempty"` + // NotReceivedCount - Represents the number of operations not yet received by a remote replicator. + NotReceivedCount *string `json:"NotReceivedCount,omitempty"` + // ReceivedAndNotAppliedCount - Represents the number of operations received and not yet applied by a remote replicator. + ReceivedAndNotAppliedCount *string `json:"ReceivedAndNotAppliedCount,omitempty"` +} + +// RemoteReplicatorAcknowledgementStatus provides details about the remote replicators from the primary +// replicator's point of view. +type RemoteReplicatorAcknowledgementStatus struct { + // ReplicationStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the replication stream data. + ReplicationStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"ReplicationStreamAcknowledgementDetail,omitempty"` + // CopyStreamAcknowledgementDetail - Details about the acknowledgements for operations that are part of the copy stream data. + CopyStreamAcknowledgementDetail *RemoteReplicatorAcknowledgementDetail `json:"CopyStreamAcknowledgementDetail,omitempty"` +} + +// RemoteReplicatorStatus represents the state of the secondary replicator from the primary replicator’s +// point of view. +type RemoteReplicatorStatus struct { + // ReplicaID - Represents the replica ID of the remote secondary replicator. + ReplicaID *string `json:"ReplicaId,omitempty"` + // LastAcknowledgementProcessedTimeUtc - The last timestamp (in UTC) when an acknowledgement from the secondary replicator was processed on the primary. + // UTC 0 represents an invalid value, indicating that no acknowledgement messages were ever processed. + LastAcknowledgementProcessedTimeUtc *date.Time `json:"LastAcknowledgementProcessedTimeUtc,omitempty"` + // LastReceivedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has received from the primary. + LastReceivedReplicationSequenceNumber *string `json:"LastReceivedReplicationSequenceNumber,omitempty"` + // LastAppliedReplicationSequenceNumber - The highest replication operation sequence number that the secondary has applied to its state. + LastAppliedReplicationSequenceNumber *string `json:"LastAppliedReplicationSequenceNumber,omitempty"` + // IsInBuild - A value that indicates whether the secondary replica is in the process of being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // LastReceivedCopySequenceNumber - The highest copy operation sequence number that the secondary has received from the primary. + // A value of -1 implies that the secondary has received all copy operations. + LastReceivedCopySequenceNumber *string `json:"LastReceivedCopySequenceNumber,omitempty"` + // LastAppliedCopySequenceNumber - The highest copy operation sequence number that the secondary has applied to its state. + // A value of -1 implies that the secondary has applied all copy operations and the copy process is complete. + LastAppliedCopySequenceNumber *string `json:"LastAppliedCopySequenceNumber,omitempty"` + // RemoteReplicatorAcknowledgementStatus - Represents the acknowledgment status for the remote secondary replicator. + RemoteReplicatorAcknowledgementStatus *RemoteReplicatorAcknowledgementStatus `json:"RemoteReplicatorAcknowledgementStatus,omitempty"` +} + +// BasicRepairImpactDescriptionBase describes the expected impact of executing a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type BasicRepairImpactDescriptionBase interface { + AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) + AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) +} + +// RepairImpactDescriptionBase describes the expected impact of executing a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairImpactDescriptionBase struct { + // Kind - Possible values include: 'KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase', 'KindBasicRepairImpactDescriptionBaseKindNode' + Kind KindBasicRepairImpactDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicRepairImpactDescriptionBase(body []byte) (BasicRepairImpactDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicRepairImpactDescriptionBaseKindNode): + var nrid NodeRepairImpactDescription + err := json.Unmarshal(body, &nrid) + return nrid, err + default: + var ridb RepairImpactDescriptionBase + err := json.Unmarshal(body, &ridb) + return ridb, err + } +} +func unmarshalBasicRepairImpactDescriptionBaseArray(body []byte) ([]BasicRepairImpactDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ridbArray := make([]BasicRepairImpactDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ridb, err := unmarshalBasicRepairImpactDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + ridbArray[index] = ridb + } + return ridbArray, nil +} + +// MarshalJSON is the custom marshaler for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) MarshalJSON() ([]byte, error) { + ridb.Kind = KindBasicRepairImpactDescriptionBaseKindRepairImpactDescriptionBase + objectMap := make(map[string]interface{}) + if ridb.Kind != "" { + objectMap["Kind"] = ridb.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairImpactDescription is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsNodeRepairImpactDescription() (*NodeRepairImpactDescription, bool) { + return nil, false +} + +// AsRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsRepairImpactDescriptionBase() (*RepairImpactDescriptionBase, bool) { + return &ridb, true +} + +// AsBasicRepairImpactDescriptionBase is the BasicRepairImpactDescriptionBase implementation for RepairImpactDescriptionBase. +func (ridb RepairImpactDescriptionBase) AsBasicRepairImpactDescriptionBase() (BasicRepairImpactDescriptionBase, bool) { + return &ridb, true +} + +// BasicRepairTargetDescriptionBase describes the entities targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type BasicRepairTargetDescriptionBase interface { + AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) + AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) +} + +// RepairTargetDescriptionBase describes the entities targeted by a repair action. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTargetDescriptionBase struct { + // Kind - Possible values include: 'KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase', 'KindBasicRepairTargetDescriptionBaseKindNode' + Kind KindBasicRepairTargetDescriptionBase `json:"Kind,omitempty"` +} + +func unmarshalBasicRepairTargetDescriptionBase(body []byte) (BasicRepairTargetDescriptionBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindBasicRepairTargetDescriptionBaseKindNode): + var nrtd NodeRepairTargetDescription + err := json.Unmarshal(body, &nrtd) + return nrtd, err + default: + var rtdb RepairTargetDescriptionBase + err := json.Unmarshal(body, &rtdb) + return rtdb, err + } +} +func unmarshalBasicRepairTargetDescriptionBaseArray(body []byte) ([]BasicRepairTargetDescriptionBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rtdbArray := make([]BasicRepairTargetDescriptionBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rtdb, err := unmarshalBasicRepairTargetDescriptionBase(*rawMessage) + if err != nil { + return nil, err + } + rtdbArray[index] = rtdb + } + return rtdbArray, nil +} + +// MarshalJSON is the custom marshaler for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) MarshalJSON() ([]byte, error) { + rtdb.Kind = KindBasicRepairTargetDescriptionBaseKindRepairTargetDescriptionBase + objectMap := make(map[string]interface{}) + if rtdb.Kind != "" { + objectMap["Kind"] = rtdb.Kind + } + return json.Marshal(objectMap) +} + +// AsNodeRepairTargetDescription is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsNodeRepairTargetDescription() (*NodeRepairTargetDescription, bool) { + return nil, false +} + +// AsRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsRepairTargetDescriptionBase() (*RepairTargetDescriptionBase, bool) { + return &rtdb, true +} + +// AsBasicRepairTargetDescriptionBase is the BasicRepairTargetDescriptionBase implementation for RepairTargetDescriptionBase. +func (rtdb RepairTargetDescriptionBase) AsBasicRepairTargetDescriptionBase() (BasicRepairTargetDescriptionBase, bool) { + return &rtdb, true +} + +// RepairTask represents a repair task, which includes information about what kind of repair was requested, +// what its progress is, and what its final result was. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTask struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The version of the repair task. + // When creating a new repair task, the version must be set to zero. When updating a repair task, + // the version is used for optimistic concurrency checks. If the version is + // set to zero, the update will not check for write conflicts. If the version is set to a non-zero value, then the + // update will only succeed if the actual current version of the repair task matches this value. + Version *string `json:"Version,omitempty"` + // Description - A description of the purpose of the repair task, or other informational details. + // May be set when the repair task is created, and is immutable once set. + Description *string `json:"Description,omitempty"` + // State - The workflow state of the repair task. Valid initial states are Created, Claimed, and Preparing. Possible values include: 'StateInvalid', 'StateCreated', 'StateClaimed', 'StatePreparing', 'StateApproved', 'StateExecuting', 'StateRestoring', 'StateCompleted' + State State `json:"State,omitempty"` + // Flags - A bitwise-OR of the following values, which gives additional details about the status of the repair task. + // - 1 - Cancellation of the repair has been requested + // - 2 - Abort of the repair has been requested + // - 4 - Approval of the repair was forced via client request + Flags *int32 `json:"Flags,omitempty"` + // Action - The requested repair action. Must be specified when the repair task is created, and is immutable once set. + Action *string `json:"Action,omitempty"` + // Target - The target object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair. + // May be set when the repair task is created, and is immutable once set. + Target BasicRepairTargetDescriptionBase `json:"Target,omitempty"` + // Executor - The name of the repair executor. Must be specified in Claimed and later states, and is immutable once set. + Executor *string `json:"Executor,omitempty"` + // ExecutorData - A data string that the repair executor can use to store its internal state. + ExecutorData *string `json:"ExecutorData,omitempty"` + // Impact - The impact object determines what actions the system will take to prepare for the impact of the repair, prior to approving execution of the repair. + // Impact must be specified by the repair executor when transitioning to the Preparing state, and is immutable once set. + Impact BasicRepairImpactDescriptionBase `json:"Impact,omitempty"` + // ResultStatus - A value describing the overall result of the repair task execution. Must be specified in the Restoring and later states, and is immutable once set. Possible values include: 'ResultStatusInvalid', 'ResultStatusSucceeded', 'ResultStatusCancelled', 'ResultStatusInterrupted', 'ResultStatusFailed', 'ResultStatusPending' + ResultStatus ResultStatus `json:"ResultStatus,omitempty"` + // ResultCode - A numeric value providing additional details about the result of the repair task execution. + // May be specified in the Restoring and later states, and is immutable once set. + ResultCode *int32 `json:"ResultCode,omitempty"` + // ResultDetails - A string providing additional details about the result of the repair task execution. + // May be specified in the Restoring and later states, and is immutable once set. + ResultDetails *string `json:"ResultDetails,omitempty"` + // History - An object that contains timestamps of the repair task's state transitions. + // These timestamps are updated by the system, and cannot be directly modified. + History *RepairTaskHistory `json:"History,omitempty"` + // PreparingHealthCheckState - The workflow state of the health check when the repair task is in the Preparing state. Possible values include: 'NotStarted', 'InProgress', 'Succeeded', 'Skipped', 'TimedOut' + PreparingHealthCheckState RepairTaskHealthCheckState `json:"PreparingHealthCheckState,omitempty"` + // RestoringHealthCheckState - The workflow state of the health check when the repair task is in the Restoring state. Possible values include: 'NotStarted', 'InProgress', 'Succeeded', 'Skipped', 'TimedOut' + RestoringHealthCheckState RepairTaskHealthCheckState `json:"RestoringHealthCheckState,omitempty"` + // PerformPreparingHealthCheck - A value to determine if health checks will be performed when the repair task enters the Preparing state. + PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"` + // PerformRestoringHealthCheck - A value to determine if health checks will be performed when the repair task enters the Restoring state. + PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RepairTask struct. +func (rt *RepairTask) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TaskId": + if v != nil { + var taskID string + err = json.Unmarshal(*v, &taskID) + if err != nil { + return err + } + rt.TaskID = &taskID + } + case "Version": + if v != nil { + var version string + err = json.Unmarshal(*v, &version) + if err != nil { + return err + } + rt.Version = &version + } + case "Description": + if v != nil { + var description string + err = json.Unmarshal(*v, &description) + if err != nil { + return err + } + rt.Description = &description + } + case "State": + if v != nil { + var state State + err = json.Unmarshal(*v, &state) + if err != nil { + return err + } + rt.State = state + } + case "Flags": + if v != nil { + var flags int32 + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + rt.Flags = &flags + } + case "Action": + if v != nil { + var action string + err = json.Unmarshal(*v, &action) + if err != nil { + return err + } + rt.Action = &action + } + case "Target": + if v != nil { + target, err := unmarshalBasicRepairTargetDescriptionBase(*v) + if err != nil { + return err + } + rt.Target = target + } + case "Executor": + if v != nil { + var executor string + err = json.Unmarshal(*v, &executor) + if err != nil { + return err + } + rt.Executor = &executor + } + case "ExecutorData": + if v != nil { + var executorData string + err = json.Unmarshal(*v, &executorData) + if err != nil { + return err + } + rt.ExecutorData = &executorData + } + case "Impact": + if v != nil { + impact, err := unmarshalBasicRepairImpactDescriptionBase(*v) + if err != nil { + return err + } + rt.Impact = impact + } + case "ResultStatus": + if v != nil { + var resultStatus ResultStatus + err = json.Unmarshal(*v, &resultStatus) + if err != nil { + return err + } + rt.ResultStatus = resultStatus + } + case "ResultCode": + if v != nil { + var resultCode int32 + err = json.Unmarshal(*v, &resultCode) + if err != nil { + return err + } + rt.ResultCode = &resultCode + } + case "ResultDetails": + if v != nil { + var resultDetails string + err = json.Unmarshal(*v, &resultDetails) + if err != nil { + return err + } + rt.ResultDetails = &resultDetails + } + case "History": + if v != nil { + var history RepairTaskHistory + err = json.Unmarshal(*v, &history) + if err != nil { + return err + } + rt.History = &history + } + case "PreparingHealthCheckState": + if v != nil { + var preparingHealthCheckState RepairTaskHealthCheckState + err = json.Unmarshal(*v, &preparingHealthCheckState) + if err != nil { + return err + } + rt.PreparingHealthCheckState = preparingHealthCheckState + } + case "RestoringHealthCheckState": + if v != nil { + var restoringHealthCheckState RepairTaskHealthCheckState + err = json.Unmarshal(*v, &restoringHealthCheckState) + if err != nil { + return err + } + rt.RestoringHealthCheckState = restoringHealthCheckState + } + case "PerformPreparingHealthCheck": + if v != nil { + var performPreparingHealthCheck bool + err = json.Unmarshal(*v, &performPreparingHealthCheck) + if err != nil { + return err + } + rt.PerformPreparingHealthCheck = &performPreparingHealthCheck + } + case "PerformRestoringHealthCheck": + if v != nil { + var performRestoringHealthCheck bool + err = json.Unmarshal(*v, &performRestoringHealthCheck) + if err != nil { + return err + } + rt.PerformRestoringHealthCheck = &performRestoringHealthCheck + } + } + } + + return nil +} + +// RepairTaskApproveDescription describes a request for forced approval of a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskApproveDescription struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` +} + +// RepairTaskCancelDescription describes a request to cancel a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskCancelDescription struct { + // TaskID - The ID of the repair task. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` + // RequestAbort - _True_ if the repair should be stopped as soon as possible even if it has already started executing. _False_ if the repair should be cancelled only if execution has not yet started. + RequestAbort *bool `json:"RequestAbort,omitempty"` +} + +// RepairTaskDeleteDescription describes a request to delete a completed repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskDeleteDescription struct { + // TaskID - The ID of the completed repair task to be deleted. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current version of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` +} + +// RepairTaskHistory a record of the times when the repair task entered each state. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskHistory struct { + // CreatedUtcTimestamp - The time when the repair task entered the Created state. + CreatedUtcTimestamp *date.Time `json:"CreatedUtcTimestamp,omitempty"` + // ClaimedUtcTimestamp - The time when the repair task entered the Claimed state. + ClaimedUtcTimestamp *date.Time `json:"ClaimedUtcTimestamp,omitempty"` + // PreparingUtcTimestamp - The time when the repair task entered the Preparing state. + PreparingUtcTimestamp *date.Time `json:"PreparingUtcTimestamp,omitempty"` + // ApprovedUtcTimestamp - The time when the repair task entered the Approved state + ApprovedUtcTimestamp *date.Time `json:"ApprovedUtcTimestamp,omitempty"` + // ExecutingUtcTimestamp - The time when the repair task entered the Executing state + ExecutingUtcTimestamp *date.Time `json:"ExecutingUtcTimestamp,omitempty"` + // RestoringUtcTimestamp - The time when the repair task entered the Restoring state + RestoringUtcTimestamp *date.Time `json:"RestoringUtcTimestamp,omitempty"` + // CompletedUtcTimestamp - The time when the repair task entered the Completed state + CompletedUtcTimestamp *date.Time `json:"CompletedUtcTimestamp,omitempty"` + // PreparingHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Preparing state. + PreparingHealthCheckStartUtcTimestamp *date.Time `json:"PreparingHealthCheckStartUtcTimestamp,omitempty"` + // PreparingHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Preparing state. + PreparingHealthCheckEndUtcTimestamp *date.Time `json:"PreparingHealthCheckEndUtcTimestamp,omitempty"` + // RestoringHealthCheckStartUtcTimestamp - The time when the repair task started the health check in the Restoring state. + RestoringHealthCheckStartUtcTimestamp *date.Time `json:"RestoringHealthCheckStartUtcTimestamp,omitempty"` + // RestoringHealthCheckEndUtcTimestamp - The time when the repair task completed the health check in the Restoring state. + RestoringHealthCheckEndUtcTimestamp *date.Time `json:"RestoringHealthCheckEndUtcTimestamp,omitempty"` +} + +// RepairTaskUpdateHealthPolicyDescription describes a request to update the health policy of a repair +// task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskUpdateHealthPolicyDescription struct { + // TaskID - The ID of the repair task to be updated. + TaskID *string `json:"TaskId,omitempty"` + // Version - The current version number of the repair task. If non-zero, then the request will only succeed if this value matches the actual current value of the repair task. If zero, then no version check is performed. + Version *string `json:"Version,omitempty"` + // PerformPreparingHealthCheck - A boolean indicating if health check is to be performed in the Preparing stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value. + PerformPreparingHealthCheck *bool `json:"PerformPreparingHealthCheck,omitempty"` + // PerformRestoringHealthCheck - A boolean indicating if health check is to be performed in the Restoring stage of the repair task. If not specified the existing value should not be altered. Otherwise, specify the desired new value. + PerformRestoringHealthCheck *bool `json:"PerformRestoringHealthCheck,omitempty"` +} + +// RepairTaskUpdateInfo describes the result of an operation that created or updated a repair task. +// +// This type supports the Service Fabric platform; it is not meant to be used directly from your code. +type RepairTaskUpdateInfo struct { + autorest.Response `json:"-"` + // Version - The new version of the repair task. + Version *string `json:"Version,omitempty"` +} + +// BasicReplicaEvent represents the base for all Replica Events. +type BasicReplicaEvent interface { + AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) + AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) + AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) + AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) + AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) + AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) + AsReplicaEvent() (*ReplicaEvent, bool) +} + +// ReplicaEvent represents the base for all Replica Events. +type ReplicaEvent struct { + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicaEvent(body []byte) (BasicReplicaEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindStatefulReplicaNewHealthReport): + var srnhre StatefulReplicaNewHealthReportEvent + err := json.Unmarshal(body, &srnhre) + return srnhre, err + case string(KindStatefulReplicaHealthReportExpired): + var srhree StatefulReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindStatelessReplicaNewHealthReport): + var srnhre StatelessReplicaNewHealthReportEvent + err := json.Unmarshal(body, &srnhre) + return srnhre, err + case string(KindStatelessReplicaHealthReportExpired): + var srhree StatelessReplicaHealthReportExpiredEvent + err := json.Unmarshal(body, &srhree) + return srhree, err + case string(KindChaosReplicaRemovalScheduled): + var crrse ChaosReplicaRemovalScheduledEvent + err := json.Unmarshal(body, &crrse) + return crrse, err + case string(KindChaosReplicaRestartScheduled): + var crrse ChaosReplicaRestartScheduledEvent + err := json.Unmarshal(body, &crrse) + return crrse, err + default: + var re ReplicaEvent + err := json.Unmarshal(body, &re) + return re, err + } +} +func unmarshalBasicReplicaEventArray(body []byte) ([]BasicReplicaEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + reArray := make([]BasicReplicaEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + re, err := unmarshalBasicReplicaEvent(*rawMessage) + if err != nil { + return nil, err + } + reArray[index] = re + } + return reArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaEvent. +func (re ReplicaEvent) MarshalJSON() ([]byte, error) { + re.Kind = KindReplicaEvent + objectMap := make(map[string]interface{}) + if re.PartitionID != nil { + objectMap["PartitionId"] = re.PartitionID + } + if re.ReplicaID != nil { + objectMap["ReplicaId"] = re.ReplicaID + } + if re.EventInstanceID != nil { + objectMap["EventInstanceId"] = re.EventInstanceID + } + if re.Category != nil { + objectMap["Category"] = re.Category + } + if re.TimeStamp != nil { + objectMap["TimeStamp"] = re.TimeStamp + } + if re.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = re.HasCorrelatedEvents + } + if re.Kind != "" { + objectMap["Kind"] = re.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return &re, true +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &re, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ReplicaEvent. +func (re ReplicaEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &re, true +} + +// BasicReplicaHealth represents a base class for stateful service replica or stateless service instance health. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type BasicReplicaHealth interface { + AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) + AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) + AsReplicaHealth() (*ReplicaHealth, bool) +} + +// ReplicaHealth represents a base class for stateful service replica or stateless service instance health. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type ReplicaHealth struct { + autorest.Response `json:"-"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +func unmarshalBasicReplicaHealth(body []byte) (BasicReplicaHealth, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaHealthServiceKindStateful): + var ssrh StatefulServiceReplicaHealth + err := json.Unmarshal(body, &ssrh) + return ssrh, err + case string(ServiceKindBasicReplicaHealthServiceKindStateless): + var ssih StatelessServiceInstanceHealth + err := json.Unmarshal(body, &ssih) + return ssih, err + default: + var rh ReplicaHealth + err := json.Unmarshal(body, &rh) + return rh, err + } +} +func unmarshalBasicReplicaHealthArray(body []byte) ([]BasicReplicaHealth, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rhArray := make([]BasicReplicaHealth, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rh, err := unmarshalBasicReplicaHealth(*rawMessage) + if err != nil { + return nil, err + } + rhArray[index] = rh + } + return rhArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaHealth. +func (rh ReplicaHealth) MarshalJSON() ([]byte, error) { + rh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindReplicaHealth + objectMap := make(map[string]interface{}) + if rh.PartitionID != nil { + objectMap["PartitionId"] = rh.PartitionID + } + if rh.ServiceKind != "" { + objectMap["ServiceKind"] = rh.ServiceKind + } + if rh.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rh.AggregatedHealthState + } + if rh.HealthEvents != nil { + objectMap["HealthEvents"] = rh.HealthEvents + } + if rh.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rh.UnhealthyEvaluations + } + if rh.HealthStatistics != nil { + objectMap["HealthStatistics"] = rh.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return nil, false +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return &rh, true +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for ReplicaHealth. +func (rh ReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &rh, true +} + +// ReplicaHealthEvaluation represents health evaluation for a replica, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type ReplicaHealthEvaluation struct { + // PartitionID - Id of the partition to which the replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaOrInstanceID - Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID. + ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the replica. The types of the unhealthy evaluations can be EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) MarshalJSON() ([]byte, error) { + rhe.Kind = KindReplica + objectMap := make(map[string]interface{}) + if rhe.PartitionID != nil { + objectMap["PartitionId"] = rhe.PartitionID + } + if rhe.ReplicaOrInstanceID != nil { + objectMap["ReplicaOrInstanceId"] = rhe.ReplicaOrInstanceID + } + if rhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations + } + if rhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState + } + if rhe.Description != nil { + objectMap["Description"] = rhe.Description + } + if rhe.Kind != "" { + objectMap["Kind"] = rhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return &rhe, true +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicaHealthEvaluation. +func (rhe ReplicaHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &rhe, true +} + +// ReplicaHealthModel ... +type ReplicaHealthModel struct { + autorest.Response `json:"-"` + Value BasicReplicaHealth `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ReplicaHealthModel struct. +func (rhm *ReplicaHealthModel) UnmarshalJSON(body []byte) error { + rh, err := unmarshalBasicReplicaHealth(body) + if err != nil { + return err + } + rhm.Value = rh + + return nil +} + +// BasicReplicaHealthState represents a base class for stateful service replica or stateless service instance health +// state. +type BasicReplicaHealthState interface { + AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) + AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) + AsReplicaHealthState() (*ReplicaHealthState, bool) +} + +// ReplicaHealthState represents a base class for stateful service replica or stateless service instance health +// state. +type ReplicaHealthState struct { + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +func unmarshalBasicReplicaHealthState(body []byte) (BasicReplicaHealthState, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaHealthStateServiceKindStateful): + var ssrhs StatefulServiceReplicaHealthState + err := json.Unmarshal(body, &ssrhs) + return ssrhs, err + case string(ServiceKindBasicReplicaHealthStateServiceKindStateless): + var ssihs StatelessServiceInstanceHealthState + err := json.Unmarshal(body, &ssihs) + return ssihs, err + default: + var RHS ReplicaHealthState + err := json.Unmarshal(body, &RHS) + return RHS, err + } +} +func unmarshalBasicReplicaHealthStateArray(body []byte) ([]BasicReplicaHealthState, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + RHSArray := make([]BasicReplicaHealthState, len(rawMessages)) + + for index, rawMessage := range rawMessages { + RHS, err := unmarshalBasicReplicaHealthState(*rawMessage) + if err != nil { + return nil, err + } + RHSArray[index] = RHS + } + return RHSArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaHealthState. +func (RHS ReplicaHealthState) MarshalJSON() ([]byte, error) { + RHS.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState + objectMap := make(map[string]interface{}) + if RHS.PartitionID != nil { + objectMap["PartitionId"] = RHS.PartitionID + } + if RHS.ServiceKind != "" { + objectMap["ServiceKind"] = RHS.ServiceKind + } + if RHS.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = RHS.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return nil, false +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return &RHS, true +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for ReplicaHealthState. +func (RHS ReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &RHS, true +} + +// ReplicaHealthStateChunk represents the health state chunk of a stateful service replica or a stateless +// service instance. +// The replica health state contains the replica ID and its aggregated health state. +type ReplicaHealthStateChunk struct { + // ReplicaOrInstanceID - Id of a stateful service replica or a stateless service instance. This ID is used in the queries that apply to both stateful and stateless services. It is used by Service Fabric to uniquely identify a replica of a partition of a stateful service or an instance of a stateless service partition. It is unique within a partition and does not change for the lifetime of the replica or the instance. If a stateful replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the ID. If a stateless instance is failed over on the same or different node it will get a different value for the ID. + ReplicaOrInstanceID *string `json:"ReplicaOrInstanceId,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ReplicaHealthStateChunkList the list of replica health state chunks that respect the input filters in +// the chunk query. Returned by get cluster health state chunks query. +type ReplicaHealthStateChunkList struct { + // Items - The list of replica health state chunks that respect the input filters in the chunk query. + Items *[]ReplicaHealthStateChunk `json:"Items,omitempty"` +} + +// ReplicaHealthStateFilter defines matching criteria to determine whether a replica should be included as +// a child of a partition in the cluster health chunk. +// The replicas are only returned if the parent entities match a filter specified in the cluster health +// chunk query description. The parent partition, service and application must be included in the cluster +// health chunk. +// One filter can match zero, one or multiple replicas, depending on its properties. +type ReplicaHealthStateFilter struct { + // ReplicaOrInstanceIDFilter - Id of the stateful service replica or stateless service instance that matches the filter. The filter is applied only to the specified replica, if it exists. + // If the replica doesn't exist, no replica is returned in the cluster health chunk based on this filter. + // If the replica exists, it is included in the cluster health chunk if it respects the other filter properties. + // If not specified, all replicas that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ReplicaOrInstanceIDFilter *string `json:"ReplicaOrInstanceIdFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the replicas. It allows selecting replicas if they match the desired health states. + // The possible values are integer value of one of the following health states. Only replicas that match the filter are returned. All replicas are used to evaluate the parent partition aggregated health state. + // If not specified, default value is None, unless the replica ID is specified. If the filter has default value and replica ID is specified, the matching replica is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches replicas with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` +} + +// BasicReplicaInfo information about the identity, status, health, node name, uptime, and other details about the +// replica. +type BasicReplicaInfo interface { + AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) + AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) + AsReplicaInfo() (*ReplicaInfo, bool) +} + +// ReplicaInfo information about the identity, status, health, node name, uptime, and other details about the +// replica. +type ReplicaInfo struct { + autorest.Response `json:"-"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicReplicaInfo(body []byte) (BasicReplicaInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicReplicaInfoServiceKindStateful): + var ssri StatefulServiceReplicaInfo + err := json.Unmarshal(body, &ssri) + return ssri, err + case string(ServiceKindBasicReplicaInfoServiceKindStateless): + var ssii StatelessServiceInstanceInfo + err := json.Unmarshal(body, &ssii) + return ssii, err + default: + var ri ReplicaInfo + err := json.Unmarshal(body, &ri) + return ri, err + } +} +func unmarshalBasicReplicaInfoArray(body []byte) ([]BasicReplicaInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + riArray := make([]BasicReplicaInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ri, err := unmarshalBasicReplicaInfo(*rawMessage) + if err != nil { + return nil, err + } + riArray[index] = ri + } + return riArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaInfo. +func (ri ReplicaInfo) MarshalJSON() ([]byte, error) { + ri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindReplicaInfo + objectMap := make(map[string]interface{}) + if ri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ri.ReplicaStatus + } + if ri.HealthState != "" { + objectMap["HealthState"] = ri.HealthState + } + if ri.NodeName != nil { + objectMap["NodeName"] = ri.NodeName + } + if ri.Address != nil { + objectMap["Address"] = ri.Address + } + if ri.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ri.LastInBuildDurationInSeconds + } + if ri.ServiceKind != "" { + objectMap["ServiceKind"] = ri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return &ri, true +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for ReplicaInfo. +func (ri ReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ri, true +} + +// ReplicaInfoModel ... +type ReplicaInfoModel struct { + autorest.Response `json:"-"` + Value BasicReplicaInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ReplicaInfoModel struct. +func (rim *ReplicaInfoModel) UnmarshalJSON(body []byte) error { + ri, err := unmarshalBasicReplicaInfo(body) + if err != nil { + return err + } + rim.Value = ri + + return nil +} + +// ReplicasHealthEvaluation represents health evaluation for replicas, containing health evaluations for +// each unhealthy replica that impacted current aggregated health state. Can be returned when evaluating +// partition health and the aggregated health state is either Error or Warning. +type ReplicasHealthEvaluation struct { + // MaxPercentUnhealthyReplicasPerPartition - Maximum allowed percentage of unhealthy replicas per partition from the ApplicationHealthPolicy. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"` + // TotalCount - Total number of replicas in the partition from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ReplicaHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) MarshalJSON() ([]byte, error) { + rhe.Kind = KindReplicas + objectMap := make(map[string]interface{}) + if rhe.MaxPercentUnhealthyReplicasPerPartition != nil { + objectMap["MaxPercentUnhealthyReplicasPerPartition"] = rhe.MaxPercentUnhealthyReplicasPerPartition + } + if rhe.TotalCount != nil { + objectMap["TotalCount"] = rhe.TotalCount + } + if rhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = rhe.UnhealthyEvaluations + } + if rhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = rhe.AggregatedHealthState + } + if rhe.Description != nil { + objectMap["Description"] = rhe.Description + } + if rhe.Kind != "" { + objectMap["Kind"] = rhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return &rhe, true +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ReplicasHealthEvaluation. +func (rhe ReplicasHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &rhe, true +} + +// BasicReplicaStatusBase information about the replica. +type BasicReplicaStatusBase interface { + AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) + AsReplicaStatusBase() (*ReplicaStatusBase, bool) +} + +// ReplicaStatusBase information about the replica. +type ReplicaStatusBase struct { + // Kind - Possible values include: 'KindReplicaStatusBase', 'KindKeyValueStore' + Kind KindBasicReplicaStatusBase `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicaStatusBase(body []byte) (BasicReplicaStatusBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindKeyValueStore): + var kvsrs KeyValueStoreReplicaStatus + err := json.Unmarshal(body, &kvsrs) + return kvsrs, err + default: + var rsb ReplicaStatusBase + err := json.Unmarshal(body, &rsb) + return rsb, err + } +} +func unmarshalBasicReplicaStatusBaseArray(body []byte) ([]BasicReplicaStatusBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rsbArray := make([]BasicReplicaStatusBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rsb, err := unmarshalBasicReplicaStatusBase(*rawMessage) + if err != nil { + return nil, err + } + rsbArray[index] = rsb + } + return rsbArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicaStatusBase. +func (rsb ReplicaStatusBase) MarshalJSON() ([]byte, error) { + rsb.Kind = KindReplicaStatusBase + objectMap := make(map[string]interface{}) + if rsb.Kind != "" { + objectMap["Kind"] = rsb.Kind + } + return json.Marshal(objectMap) +} + +// AsKeyValueStoreReplicaStatus is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsKeyValueStoreReplicaStatus() (*KeyValueStoreReplicaStatus, bool) { + return nil, false +} + +// AsReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsReplicaStatusBase() (*ReplicaStatusBase, bool) { + return &rsb, true +} + +// AsBasicReplicaStatusBase is the BasicReplicaStatusBase implementation for ReplicaStatusBase. +func (rsb ReplicaStatusBase) AsBasicReplicaStatusBase() (BasicReplicaStatusBase, bool) { + return &rsb, true +} + +// ReplicatorQueueStatus provides various statistics of the queue used in the service fabric replicator. +// Contains information about the service fabric replicator like the replication/copy queue utilization, +// last acknowledgement received timestamp, etc. +// Depending on the role of the replicator, the properties in this type imply different meanings. +type ReplicatorQueueStatus struct { + // QueueUtilizationPercentage - Represents the utilization of the queue. A value of 0 indicates that the queue is empty and a value of 100 indicates the queue is full. + QueueUtilizationPercentage *int32 `json:"QueueUtilizationPercentage,omitempty"` + // QueueMemorySize - Represents the virtual memory consumed by the queue in bytes. + QueueMemorySize *string `json:"QueueMemorySize,omitempty"` + // FirstSequenceNumber - On a primary replicator, this is semantically the sequence number of the operation for which all the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is the smallest sequence number of the operation that is present in the queue. + FirstSequenceNumber *string `json:"FirstSequenceNumber,omitempty"` + // CompletedSequenceNumber - On a primary replicator, this is semantically the highest sequence number of the operation for which all the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is semantically the highest sequence number that has been applied to the persistent state. + CompletedSequenceNumber *string `json:"CompletedSequenceNumber,omitempty"` + // CommittedSequenceNumber - On a primary replicator, this is semantically the highest sequence number of the operation for which a write quorum of the secondary replicas have sent an acknowledgement. + // On a secondary replicator, this is semantically the highest sequence number of the in-order operation received from the primary. + CommittedSequenceNumber *string `json:"CommittedSequenceNumber,omitempty"` + // LastSequenceNumber - Represents the latest sequence number of the operation that is available in the queue. + LastSequenceNumber *string `json:"LastSequenceNumber,omitempty"` +} + +// BasicReplicatorStatus represents a base class for primary or secondary replicator status. +// Contains information about the service fabric replicator like the replication/copy queue utilization, last +// acknowledgement received timestamp, etc. +type BasicReplicatorStatus interface { + AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) + AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) + AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) + AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) + AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) + AsReplicatorStatus() (*ReplicatorStatus, bool) +} + +// ReplicatorStatus represents a base class for primary or secondary replicator status. +// Contains information about the service fabric replicator like the replication/copy queue utilization, last +// acknowledgement received timestamp, etc. +type ReplicatorStatus struct { + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +func unmarshalBasicReplicatorStatus(body []byte) (BasicReplicatorStatus, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPrimary): + var prs PrimaryReplicatorStatus + err := json.Unmarshal(body, &prs) + return prs, err + case string(KindSecondaryReplicatorStatus): + var srs SecondaryReplicatorStatus + err := json.Unmarshal(body, &srs) + return srs, err + case string(KindActiveSecondary): + var sars SecondaryActiveReplicatorStatus + err := json.Unmarshal(body, &sars) + return sars, err + case string(KindIdleSecondary): + var sirs SecondaryIdleReplicatorStatus + err := json.Unmarshal(body, &sirs) + return sirs, err + default: + var rs ReplicatorStatus + err := json.Unmarshal(body, &rs) + return rs, err + } +} +func unmarshalBasicReplicatorStatusArray(body []byte) ([]BasicReplicatorStatus, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rsArray := make([]BasicReplicatorStatus, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rs, err := unmarshalBasicReplicatorStatus(*rawMessage) + if err != nil { + return nil, err + } + rsArray[index] = rs + } + return rsArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicatorStatus. +func (rs ReplicatorStatus) MarshalJSON() ([]byte, error) { + rs.Kind = KindReplicatorStatus + objectMap := make(map[string]interface{}) + if rs.Kind != "" { + objectMap["Kind"] = rs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return &rs, true +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for ReplicatorStatus. +func (rs ReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &rs, true +} + +// ResolvedServiceEndpoint endpoint of a resolved service partition. +type ResolvedServiceEndpoint struct { + // Kind - The role of the replica where the endpoint is reported. Possible values include: 'ServiceEndpointRoleInvalid', 'ServiceEndpointRoleStateless', 'ServiceEndpointRoleStatefulPrimary', 'ServiceEndpointRoleStatefulSecondary' + Kind ServiceEndpointRole `json:"Kind,omitempty"` + // Address - The address of the endpoint. If the endpoint has multiple listeners the address is a JSON object with one property per listener with the value as the address of that listener. + Address *string `json:"Address,omitempty"` +} + +// ResolvedServicePartition information about a service partition and its associated endpoints. +type ResolvedServicePartition struct { + autorest.Response `json:"-"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // PartitionInformation - A representation of the resolved partition. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // Endpoints - List of resolved service endpoints of a service partition. + Endpoints *[]ResolvedServiceEndpoint `json:"Endpoints,omitempty"` + // Version - The version of this resolved service partition result. This version should be passed in the next time the ResolveService call is made via the PreviousRspVersion query parameter. + Version *string `json:"Version,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ResolvedServicePartition struct. +func (rsp *ResolvedServicePartition) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + rsp.Name = &name + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + rsp.PartitionInformation = partitionInformation + } + case "Endpoints": + if v != nil { + var endpoints []ResolvedServiceEndpoint + err = json.Unmarshal(*v, &endpoints) + if err != nil { + return err + } + rsp.Endpoints = &endpoints + } + case "Version": + if v != nil { + var version string + err = json.Unmarshal(*v, &version) + if err != nil { + return err + } + rsp.Version = &version + } + } + } + + return nil +} + +// ResourceLimits this type describes the resource limits for a given container. It describes the most +// amount of resources a container is allowed to use before being restarted. +type ResourceLimits struct { + // MemoryInGB - The memory limit in GB. + MemoryInGB *float64 `json:"memoryInGB,omitempty"` + // CPU - CPU limits in cores. At present, only full cores are supported. + CPU *float64 `json:"cpu,omitempty"` +} + +// ResourceRequests this type describes the requested resources for a given container. It describes the +// least amount of resources required for the container. A container can consume more than requested +// resources up to the specified limits before being restarted. Currently, the requested resources are +// treated as limits. +type ResourceRequests struct { + // MemoryInGB - The memory request in GB for this container. + MemoryInGB *float64 `json:"memoryInGB,omitempty"` + // CPU - Requested number of CPU cores. At present, only full cores are supported. + CPU *float64 `json:"cpu,omitempty"` +} + +// ResourceRequirements this type describes the resource requirements for a container or a service. +type ResourceRequirements struct { + // Requests - Describes the requested resources for a given container. + Requests *ResourceRequests `json:"requests,omitempty"` + // Limits - Describes the maximum limits on the resources for a given container. + Limits *ResourceLimits `json:"limits,omitempty"` +} + +// RestartDeployedCodePackageDescription defines description for restarting a deployed code package on +// Service Fabric node. +type RestartDeployedCodePackageDescription struct { + // ServiceManifestName - The name of service manifest that specified this code package. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServicePackageActivationID - The ActivationId of a deployed service package. If ServicePackageActivationMode specified at the time of creating the service + // is 'SharedProcess' (or if it is not specified, in which case it defaults to 'SharedProcess'), then value of ServicePackageActivationId + // is always an empty string. + ServicePackageActivationID *string `json:"ServicePackageActivationId,omitempty"` + // CodePackageName - The name of the code package defined in the service manifest. + CodePackageName *string `json:"CodePackageName,omitempty"` + // CodePackageInstanceID - The instance ID for currently running entry point. For a code package setup entry point (if specified) runs first and after it finishes main entry point is started. + // Each time entry point executable is run, its instance ID will change. If 0 is passed in as the code package instance ID, the API will restart the code package with whatever instance ID it is currently running. + // If an instance ID other than 0 is passed in, the API will restart the code package only if the current Instance ID matches the passed in instance ID. + // Note, passing in the exact instance ID (not 0) in the API is safer, because if ensures at most one restart of the code package. + CodePackageInstanceID *string `json:"CodePackageInstanceId,omitempty"` +} + +// RestartNodeDescription describes the parameters to restart a Service Fabric node. +type RestartNodeDescription struct { + // NodeInstanceID - The instance ID of the target node. If instance ID is specified the node is restarted only if it matches with the current instance of the node. A default value of "0" would match any instance ID. The instance ID can be obtained using get node query. + NodeInstanceID *string `json:"NodeInstanceId,omitempty"` + // CreateFabricDump - Specify True to create a dump of the fabric node process. This is case-sensitive. Possible values include: 'False', 'True' + CreateFabricDump CreateFabricDump `json:"CreateFabricDump,omitempty"` +} + +// RestartPartitionResult represents information about an operation in a terminal state (Completed or +// Faulted). +type RestartPartitionResult struct { + // ErrorCode - If OperationState is Completed, this is 0. If OperationState is Faulted, this is an error code indicating the reason. + ErrorCode *int32 `json:"ErrorCode,omitempty"` + // SelectedPartition - This class returns information about the partition that the user-induced operation acted upon. + SelectedPartition *SelectedPartition `json:"SelectedPartition,omitempty"` +} + +// RestorePartitionDescription specifies the parameters needed to trigger a restore of a specific +// partition. +type RestorePartitionDescription struct { + // BackupID - Unique backup ID. + BackupID *uuid.UUID `json:"BackupId,omitempty"` + // BackupLocation - Location of the backup relative to the backup storage specified/ configured. + BackupLocation *string `json:"BackupLocation,omitempty"` + // BackupStorage - Location of the backup from where the partition will be restored. + BackupStorage BasicBackupStorageDescription `json:"BackupStorage,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RestorePartitionDescription struct. +func (rpd *RestorePartitionDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "BackupId": + if v != nil { + var backupID uuid.UUID + err = json.Unmarshal(*v, &backupID) + if err != nil { + return err + } + rpd.BackupID = &backupID + } + case "BackupLocation": + if v != nil { + var backupLocation string + err = json.Unmarshal(*v, &backupLocation) + if err != nil { + return err + } + rpd.BackupLocation = &backupLocation + } + case "BackupStorage": + if v != nil { + backupStorage, err := unmarshalBasicBackupStorageDescription(*v) + if err != nil { + return err + } + rpd.BackupStorage = backupStorage + } + } + } + + return nil +} + +// RestoreProgressInfo describes the progress of a restore operation on a partition. +type RestoreProgressInfo struct { + autorest.Response `json:"-"` + // RestoreState - Represents the current state of the partition restore operation. Possible values include: 'RestoreStateInvalid', 'RestoreStateAccepted', 'RestoreStateRestoreInProgress', 'RestoreStateSuccess', 'RestoreStateFailure', 'RestoreStateTimeout' + RestoreState RestoreState `json:"RestoreState,omitempty"` + // TimeStampUtc - Timestamp when operation succeeded or failed. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // RestoredEpoch - Describes the epoch at which the partition is restored. + RestoredEpoch *Epoch `json:"RestoredEpoch,omitempty"` + // RestoredLsn - Restored LSN. + RestoredLsn *string `json:"RestoredLsn,omitempty"` + // FailureError - Denotes the failure encountered in performing restore operation. + FailureError *FabricErrorError `json:"FailureError,omitempty"` +} + +// ResumeApplicationUpgradeDescription describes the parameters for resuming an unmonitored manual Service +// Fabric application upgrade +type ResumeApplicationUpgradeDescription struct { + // UpgradeDomainName - The name of the upgrade domain in which to resume the upgrade. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` +} + +// ResumeClusterUpgradeDescription describes the parameters for resuming a cluster upgrade. +type ResumeClusterUpgradeDescription struct { + // UpgradeDomain - The next upgrade domain for this cluster upgrade. + UpgradeDomain *string `json:"UpgradeDomain,omitempty"` +} + +// BasicRetentionPolicyDescription describes the retention policy configured. +type BasicRetentionPolicyDescription interface { + AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) + AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) +} + +// RetentionPolicyDescription describes the retention policy configured. +type RetentionPolicyDescription struct { + // RetentionPolicyType - Possible values include: 'RetentionPolicyTypeRetentionPolicyDescription', 'RetentionPolicyTypeBasic1' + RetentionPolicyType RetentionPolicyTypeBasicRetentionPolicyDescription `json:"RetentionPolicyType,omitempty"` +} + +func unmarshalBasicRetentionPolicyDescription(body []byte) (BasicRetentionPolicyDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["RetentionPolicyType"] { + case string(RetentionPolicyTypeBasic1): + var brpd BasicRetentionPolicyDescription + err := json.Unmarshal(body, &brpd) + return brpd, err + default: + var rpd RetentionPolicyDescription + err := json.Unmarshal(body, &rpd) + return rpd, err + } +} +func unmarshalBasicRetentionPolicyDescriptionArray(body []byte) ([]BasicRetentionPolicyDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rpdArray := make([]BasicRetentionPolicyDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rpd, err := unmarshalBasicRetentionPolicyDescription(*rawMessage) + if err != nil { + return nil, err + } + rpdArray[index] = rpd + } + return rpdArray, nil +} + +// MarshalJSON is the custom marshaler for RetentionPolicyDescription. +func (rpd RetentionPolicyDescription) MarshalJSON() ([]byte, error) { + rpd.RetentionPolicyType = RetentionPolicyTypeRetentionPolicyDescription + objectMap := make(map[string]interface{}) + if rpd.RetentionPolicyType != "" { + objectMap["RetentionPolicyType"] = rpd.RetentionPolicyType + } + return json.Marshal(objectMap) +} + +// AsBasicRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for RetentionPolicyDescription. +func (rpd RetentionPolicyDescription) AsBasicRetentionPolicyDescription() (*BasicRetentionPolicyDescription, bool) { + return nil, false +} + +// AsRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for RetentionPolicyDescription. +func (rpd RetentionPolicyDescription) AsRetentionPolicyDescription() (*RetentionPolicyDescription, bool) { + return &rpd, true +} + +// AsBasicRetentionPolicyDescription is the BasicRetentionPolicyDescription implementation for RetentionPolicyDescription. +func (rpd RetentionPolicyDescription) AsBasicRetentionPolicyDescription() (BasicRetentionPolicyDescription, bool) { + return &rpd, true +} + +// RollingUpgradeUpdateDescription describes the parameters for updating a rolling upgrade of application +// or cluster. +type RollingUpgradeUpdateDescription struct { + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // ReplicaSetCheckTimeoutInMilliseconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + ReplicaSetCheckTimeoutInMilliseconds *int64 `json:"ReplicaSetCheckTimeoutInMilliseconds,omitempty"` + // FailureAction - The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations. + // Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically. + // Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode. Possible values include: 'FailureActionInvalid', 'FailureActionRollback', 'FailureActionManual' + FailureAction FailureAction `json:"FailureAction,omitempty"` + // HealthCheckWaitDurationInMilliseconds - The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckWaitDurationInMilliseconds *string `json:"HealthCheckWaitDurationInMilliseconds,omitempty"` + // HealthCheckStableDurationInMilliseconds - The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckStableDurationInMilliseconds *string `json:"HealthCheckStableDurationInMilliseconds,omitempty"` + // HealthCheckRetryTimeoutInMilliseconds - The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + HealthCheckRetryTimeoutInMilliseconds *string `json:"HealthCheckRetryTimeoutInMilliseconds,omitempty"` + // UpgradeTimeoutInMilliseconds - The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeTimeoutInMilliseconds *string `json:"UpgradeTimeoutInMilliseconds,omitempty"` + // UpgradeDomainTimeoutInMilliseconds - The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds. + UpgradeDomainTimeoutInMilliseconds *string `json:"UpgradeDomainTimeoutInMilliseconds,omitempty"` +} + +// BasicSafetyCheck represents a safety check performed by service fabric before continuing with the operations. These +// checks ensure the availability of the service and the reliability of the state. +type BasicSafetyCheck interface { + AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) + AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) + AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) + AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) + AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) + AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) + AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) + AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) + AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) + AsSafetyCheck() (*SafetyCheck, bool) +} + +// SafetyCheck represents a safety check performed by service fabric before continuing with the operations. +// These checks ensure the availability of the service and the reliability of the state. +type SafetyCheck struct { + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +func unmarshalBasicSafetyCheck(body []byte) (BasicSafetyCheck, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionSafetyCheck): + var psc PartitionSafetyCheck + err := json.Unmarshal(body, &psc) + return psc, err + case string(KindEnsureAvailability): + var easc EnsureAvailabilitySafetyCheck + err := json.Unmarshal(body, &easc) + return easc, err + case string(KindEnsurePartitionQuorum): + var epqsc EnsurePartitionQurumSafetyCheck + err := json.Unmarshal(body, &epqsc) + return epqsc, err + case string(KindEnsureSeedNodeQuorum): + var snsc SeedNodeSafetyCheck + err := json.Unmarshal(body, &snsc) + return snsc, err + case string(KindWaitForInbuildReplica): + var wfirsc WaitForInbuildReplicaSafetyCheck + err := json.Unmarshal(body, &wfirsc) + return wfirsc, err + case string(KindWaitForPrimaryPlacement): + var wfppsc WaitForPrimaryPlacementSafetyCheck + err := json.Unmarshal(body, &wfppsc) + return wfppsc, err + case string(KindWaitForPrimarySwap): + var wfpssc WaitForPrimarySwapSafetyCheck + err := json.Unmarshal(body, &wfpssc) + return wfpssc, err + case string(KindWaitForReconfiguration): + var wfrsc WaitForReconfigurationSafetyCheck + err := json.Unmarshal(body, &wfrsc) + return wfrsc, err + default: + var sc SafetyCheck + err := json.Unmarshal(body, &sc) + return sc, err + } +} +func unmarshalBasicSafetyCheckArray(body []byte) ([]BasicSafetyCheck, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + scArray := make([]BasicSafetyCheck, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sc, err := unmarshalBasicSafetyCheck(*rawMessage) + if err != nil { + return nil, err + } + scArray[index] = sc + } + return scArray, nil +} + +// MarshalJSON is the custom marshaler for SafetyCheck. +func (sc SafetyCheck) MarshalJSON() ([]byte, error) { + sc.Kind = KindSafetyCheck + objectMap := make(map[string]interface{}) + if sc.Kind != "" { + objectMap["Kind"] = sc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return nil, false +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return &sc, true +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SafetyCheck. +func (sc SafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &sc, true +} + +// SafetyCheckWrapper a wrapper for the safety check object. Safety checks are performed by service fabric +// before continuing with the operations. These checks ensure the availability of the service and the +// reliability of the state. +type SafetyCheckWrapper struct { + // SafetyCheck - Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. + SafetyCheck BasicSafetyCheck `json:"SafetyCheck,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for SafetyCheckWrapper struct. +func (scw *SafetyCheckWrapper) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "SafetyCheck": + if v != nil { + safetyCheck, err := unmarshalBasicSafetyCheck(*v) + if err != nil { + return err + } + scw.SafetyCheck = safetyCheck + } + } + } + + return nil +} + +// BasicScalingMechanismDescription describes the mechanism for performing a scaling operation. +type BasicScalingMechanismDescription interface { + AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) + AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) + AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) +} + +// ScalingMechanismDescription describes the mechanism for performing a scaling operation. +type ScalingMechanismDescription struct { + // Kind - Possible values include: 'KindScalingMechanismDescription', 'KindPartitionInstanceCount', 'KindAddRemoveIncrementalNamedPartition' + Kind KindBasicScalingMechanismDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicScalingMechanismDescription(body []byte) (BasicScalingMechanismDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindPartitionInstanceCount): + var picsm PartitionInstanceCountScaleMechanism + err := json.Unmarshal(body, &picsm) + return picsm, err + case string(KindAddRemoveIncrementalNamedPartition): + var arinpsm AddRemoveIncrementalNamedPartitionScalingMechanism + err := json.Unmarshal(body, &arinpsm) + return arinpsm, err + default: + var smd ScalingMechanismDescription + err := json.Unmarshal(body, &smd) + return smd, err + } +} +func unmarshalBasicScalingMechanismDescriptionArray(body []byte) ([]BasicScalingMechanismDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + smdArray := make([]BasicScalingMechanismDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + smd, err := unmarshalBasicScalingMechanismDescription(*rawMessage) + if err != nil { + return nil, err + } + smdArray[index] = smd + } + return smdArray, nil +} + +// MarshalJSON is the custom marshaler for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) MarshalJSON() ([]byte, error) { + smd.Kind = KindScalingMechanismDescription + objectMap := make(map[string]interface{}) + if smd.Kind != "" { + objectMap["Kind"] = smd.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionInstanceCountScaleMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsPartitionInstanceCountScaleMechanism() (*PartitionInstanceCountScaleMechanism, bool) { + return nil, false +} + +// AsAddRemoveIncrementalNamedPartitionScalingMechanism is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsAddRemoveIncrementalNamedPartitionScalingMechanism() (*AddRemoveIncrementalNamedPartitionScalingMechanism, bool) { + return nil, false +} + +// AsScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsScalingMechanismDescription() (*ScalingMechanismDescription, bool) { + return &smd, true +} + +// AsBasicScalingMechanismDescription is the BasicScalingMechanismDescription implementation for ScalingMechanismDescription. +func (smd ScalingMechanismDescription) AsBasicScalingMechanismDescription() (BasicScalingMechanismDescription, bool) { + return &smd, true +} + +// ScalingPolicyDescription describes how the scaling should be performed +type ScalingPolicyDescription struct { + // ScalingTrigger - Specifies the trigger associated with this scaling policy + ScalingTrigger BasicScalingTriggerDescription `json:"ScalingTrigger,omitempty"` + // ScalingMechanism - Specifies the mechanism associated with this scaling policy + ScalingMechanism BasicScalingMechanismDescription `json:"ScalingMechanism,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ScalingPolicyDescription struct. +func (spd *ScalingPolicyDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ScalingTrigger": + if v != nil { + scalingTrigger, err := unmarshalBasicScalingTriggerDescription(*v) + if err != nil { + return err + } + spd.ScalingTrigger = scalingTrigger + } + case "ScalingMechanism": + if v != nil { + scalingMechanism, err := unmarshalBasicScalingMechanismDescription(*v) + if err != nil { + return err + } + spd.ScalingMechanism = scalingMechanism + } + } + } + + return nil +} + +// BasicScalingTriggerDescription describes the trigger for performing a scaling operation. +type BasicScalingTriggerDescription interface { + AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) + AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) + AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) +} + +// ScalingTriggerDescription describes the trigger for performing a scaling operation. +type ScalingTriggerDescription struct { + // Kind - Possible values include: 'KindScalingTriggerDescription', 'KindAveragePartitionLoad', 'KindAverageServiceLoad' + Kind KindBasicScalingTriggerDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicScalingTriggerDescription(body []byte) (BasicScalingTriggerDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindAveragePartitionLoad): + var aplst AveragePartitionLoadScalingTrigger + err := json.Unmarshal(body, &aplst) + return aplst, err + case string(KindAverageServiceLoad): + var aslst AverageServiceLoadScalingTrigger + err := json.Unmarshal(body, &aslst) + return aslst, err + default: + var std ScalingTriggerDescription + err := json.Unmarshal(body, &std) + return std, err + } +} +func unmarshalBasicScalingTriggerDescriptionArray(body []byte) ([]BasicScalingTriggerDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + stdArray := make([]BasicScalingTriggerDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + std, err := unmarshalBasicScalingTriggerDescription(*rawMessage) + if err != nil { + return nil, err + } + stdArray[index] = std + } + return stdArray, nil +} + +// MarshalJSON is the custom marshaler for ScalingTriggerDescription. +func (std ScalingTriggerDescription) MarshalJSON() ([]byte, error) { + std.Kind = KindScalingTriggerDescription + objectMap := make(map[string]interface{}) + if std.Kind != "" { + objectMap["Kind"] = std.Kind + } + return json.Marshal(objectMap) +} + +// AsAveragePartitionLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsAveragePartitionLoadScalingTrigger() (*AveragePartitionLoadScalingTrigger, bool) { + return nil, false +} + +// AsAverageServiceLoadScalingTrigger is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsAverageServiceLoadScalingTrigger() (*AverageServiceLoadScalingTrigger, bool) { + return nil, false +} + +// AsScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsScalingTriggerDescription() (*ScalingTriggerDescription, bool) { + return &std, true +} + +// AsBasicScalingTriggerDescription is the BasicScalingTriggerDescription implementation for ScalingTriggerDescription. +func (std ScalingTriggerDescription) AsBasicScalingTriggerDescription() (BasicScalingTriggerDescription, bool) { + return &std, true +} + +// SecondaryActiveReplicatorStatus status of the secondary replicator when it is in active mode and is part +// of the replica set. +type SecondaryActiveReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) MarshalJSON() ([]byte, error) { + sars.Kind = KindActiveSecondary + objectMap := make(map[string]interface{}) + if sars.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = sars.ReplicationQueueStatus + } + if sars.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = sars.LastReplicationOperationReceivedTimeUtc + } + if sars.IsInBuild != nil { + objectMap["IsInBuild"] = sars.IsInBuild + } + if sars.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = sars.CopyQueueStatus + } + if sars.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = sars.LastCopyOperationReceivedTimeUtc + } + if sars.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = sars.LastAcknowledgementSentTimeUtc + } + if sars.Kind != "" { + objectMap["Kind"] = sars.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &sars, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return &sars, true +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryActiveReplicatorStatus. +func (sars SecondaryActiveReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &sars, true +} + +// SecondaryIdleReplicatorStatus status of the secondary replicator when it is in idle mode and is being +// built by the primary. +type SecondaryIdleReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) MarshalJSON() ([]byte, error) { + sirs.Kind = KindIdleSecondary + objectMap := make(map[string]interface{}) + if sirs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = sirs.ReplicationQueueStatus + } + if sirs.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = sirs.LastReplicationOperationReceivedTimeUtc + } + if sirs.IsInBuild != nil { + objectMap["IsInBuild"] = sirs.IsInBuild + } + if sirs.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = sirs.CopyQueueStatus + } + if sirs.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = sirs.LastCopyOperationReceivedTimeUtc + } + if sirs.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = sirs.LastAcknowledgementSentTimeUtc + } + if sirs.Kind != "" { + objectMap["Kind"] = sirs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return nil, false +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &sirs, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return &sirs, true +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryIdleReplicatorStatus. +func (sirs SecondaryIdleReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &sirs, true +} + +// BasicSecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in a +// ActiveSecondary role. +type BasicSecondaryReplicatorStatus interface { + AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) + AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) + AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) +} + +// SecondaryReplicatorStatus provides statistics about the Service Fabric Replicator, when it is functioning in +// a ActiveSecondary role. +type SecondaryReplicatorStatus struct { + // ReplicationQueueStatus - Details about the replication queue on the secondary replicator. + ReplicationQueueStatus *ReplicatorQueueStatus `json:"ReplicationQueueStatus,omitempty"` + // LastReplicationOperationReceivedTimeUtc - The last time-stamp (UTC) at which a replication operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a replication operation message was never received. + LastReplicationOperationReceivedTimeUtc *date.Time `json:"LastReplicationOperationReceivedTimeUtc,omitempty"` + // IsInBuild - Value that indicates whether the replica is currently being built. + IsInBuild *bool `json:"IsInBuild,omitempty"` + // CopyQueueStatus - Details about the copy queue on the secondary replicator. + CopyQueueStatus *ReplicatorQueueStatus `json:"CopyQueueStatus,omitempty"` + // LastCopyOperationReceivedTimeUtc - The last time-stamp (UTC) at which a copy operation was received from the primary. + // UTC 0 represents an invalid value, indicating that a copy operation message was never received. + LastCopyOperationReceivedTimeUtc *date.Time `json:"LastCopyOperationReceivedTimeUtc,omitempty"` + // LastAcknowledgementSentTimeUtc - The last time-stamp (UTC) at which an acknowledgment was sent to the primary replicator. + // UTC 0 represents an invalid value, indicating that an acknowledgment message was never sent. + LastAcknowledgementSentTimeUtc *date.Time `json:"LastAcknowledgementSentTimeUtc,omitempty"` + // Kind - Possible values include: 'KindReplicatorStatus', 'KindPrimary', 'KindSecondaryReplicatorStatus', 'KindActiveSecondary', 'KindIdleSecondary' + Kind KindBasicReplicatorStatus `json:"Kind,omitempty"` +} + +func unmarshalBasicSecondaryReplicatorStatus(body []byte) (BasicSecondaryReplicatorStatus, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindActiveSecondary): + var sars SecondaryActiveReplicatorStatus + err := json.Unmarshal(body, &sars) + return sars, err + case string(KindIdleSecondary): + var sirs SecondaryIdleReplicatorStatus + err := json.Unmarshal(body, &sirs) + return sirs, err + default: + var srs SecondaryReplicatorStatus + err := json.Unmarshal(body, &srs) + return srs, err + } +} +func unmarshalBasicSecondaryReplicatorStatusArray(body []byte) ([]BasicSecondaryReplicatorStatus, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srsArray := make([]BasicSecondaryReplicatorStatus, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srs, err := unmarshalBasicSecondaryReplicatorStatus(*rawMessage) + if err != nil { + return nil, err + } + srsArray[index] = srs + } + return srsArray, nil +} + +// MarshalJSON is the custom marshaler for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) MarshalJSON() ([]byte, error) { + srs.Kind = KindSecondaryReplicatorStatus + objectMap := make(map[string]interface{}) + if srs.ReplicationQueueStatus != nil { + objectMap["ReplicationQueueStatus"] = srs.ReplicationQueueStatus + } + if srs.LastReplicationOperationReceivedTimeUtc != nil { + objectMap["LastReplicationOperationReceivedTimeUtc"] = srs.LastReplicationOperationReceivedTimeUtc + } + if srs.IsInBuild != nil { + objectMap["IsInBuild"] = srs.IsInBuild + } + if srs.CopyQueueStatus != nil { + objectMap["CopyQueueStatus"] = srs.CopyQueueStatus + } + if srs.LastCopyOperationReceivedTimeUtc != nil { + objectMap["LastCopyOperationReceivedTimeUtc"] = srs.LastCopyOperationReceivedTimeUtc + } + if srs.LastAcknowledgementSentTimeUtc != nil { + objectMap["LastAcknowledgementSentTimeUtc"] = srs.LastAcknowledgementSentTimeUtc + } + if srs.Kind != "" { + objectMap["Kind"] = srs.Kind + } + return json.Marshal(objectMap) +} + +// AsPrimaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsPrimaryReplicatorStatus() (*PrimaryReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryReplicatorStatus() (*SecondaryReplicatorStatus, bool) { + return &srs, true +} + +// AsBasicSecondaryReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsBasicSecondaryReplicatorStatus() (BasicSecondaryReplicatorStatus, bool) { + return &srs, true +} + +// AsSecondaryActiveReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryActiveReplicatorStatus() (*SecondaryActiveReplicatorStatus, bool) { + return nil, false +} + +// AsSecondaryIdleReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsSecondaryIdleReplicatorStatus() (*SecondaryIdleReplicatorStatus, bool) { + return nil, false +} + +// AsReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsReplicatorStatus() (*ReplicatorStatus, bool) { + return nil, false +} + +// AsBasicReplicatorStatus is the BasicReplicatorStatus implementation for SecondaryReplicatorStatus. +func (srs SecondaryReplicatorStatus) AsBasicReplicatorStatus() (BasicReplicatorStatus, bool) { + return &srs, true +} + +// SecretResourceDescription this type describes a secret resource. +type SecretResourceDescription struct { + autorest.Response `json:"-"` + // Properties - Describes the properties of a secret resource. + Properties BasicSecretResourceProperties `json:"properties,omitempty"` + // Name - Name of the Secret resource. + Name *string `json:"name,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for SecretResourceDescription struct. +func (srd *SecretResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + properties, err := unmarshalBasicSecretResourceProperties(*v) + if err != nil { + return err + } + srd.Properties = properties + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + srd.Name = &name + } + } + } + + return nil +} + +// BasicSecretResourceProperties describes the properties of a secret resource. +type BasicSecretResourceProperties interface { + AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) + AsSecretResourceProperties() (*SecretResourceProperties, bool) +} + +// SecretResourceProperties describes the properties of a secret resource. +type SecretResourceProperties struct { + // Description - User readable description of the secret. + Description *string `json:"description,omitempty"` + // Status - Status of the resource. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the secret. + StatusDetails *string `json:"statusDetails,omitempty"` + // ContentType - The type of the content stored in the secret value. The value of this property is opaque to Service Fabric. Once set, the value of this property cannot be changed. + ContentType *string `json:"contentType,omitempty"` + // Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue' + Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"` +} + +func unmarshalBasicSecretResourceProperties(body []byte) (BasicSecretResourceProperties, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindInlinedValue): + var ivsrp InlinedValueSecretResourceProperties + err := json.Unmarshal(body, &ivsrp) + return ivsrp, err + default: + var srp SecretResourceProperties + err := json.Unmarshal(body, &srp) + return srp, err + } +} +func unmarshalBasicSecretResourcePropertiesArray(body []byte) ([]BasicSecretResourceProperties, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srpArray := make([]BasicSecretResourceProperties, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srp, err := unmarshalBasicSecretResourceProperties(*rawMessage) + if err != nil { + return nil, err + } + srpArray[index] = srp + } + return srpArray, nil +} + +// MarshalJSON is the custom marshaler for SecretResourceProperties. +func (srp SecretResourceProperties) MarshalJSON() ([]byte, error) { + srp.Kind = KindSecretResourceProperties + objectMap := make(map[string]interface{}) + if srp.Description != nil { + objectMap["description"] = srp.Description + } + if srp.Status != "" { + objectMap["status"] = srp.Status + } + if srp.StatusDetails != nil { + objectMap["statusDetails"] = srp.StatusDetails + } + if srp.ContentType != nil { + objectMap["contentType"] = srp.ContentType + } + if srp.Kind != "" { + objectMap["kind"] = srp.Kind + } + return json.Marshal(objectMap) +} + +// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties. +func (srp SecretResourceProperties) AsSecretResourceProperties() (*SecretResourceProperties, bool) { + return &srp, true +} + +// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties. +func (srp SecretResourceProperties) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) { + return &srp, true +} + +// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties. +func (srp SecretResourceProperties) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) { + return nil, false +} + +// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties. +func (srp SecretResourceProperties) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) { + return nil, false +} + +// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourceProperties. +func (srp SecretResourceProperties) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) { + return &srp, true +} + +// BasicSecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind. +type BasicSecretResourcePropertiesBase interface { + AsSecretResourceProperties() (*SecretResourceProperties, bool) + AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) + AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) + AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) +} + +// SecretResourcePropertiesBase this type describes the properties of a secret resource, including its kind. +type SecretResourcePropertiesBase struct { + // Kind - Possible values include: 'KindSecretResourcePropertiesBase', 'KindSecretResourceProperties', 'KindInlinedValue' + Kind KindBasicSecretResourcePropertiesBase `json:"kind,omitempty"` +} + +func unmarshalBasicSecretResourcePropertiesBase(body []byte) (BasicSecretResourcePropertiesBase, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindSecretResourceProperties): + var srp SecretResourceProperties + err := json.Unmarshal(body, &srp) + return srp, err + case string(KindInlinedValue): + var ivsrp InlinedValueSecretResourceProperties + err := json.Unmarshal(body, &ivsrp) + return ivsrp, err + default: + var srpb SecretResourcePropertiesBase + err := json.Unmarshal(body, &srpb) + return srpb, err + } +} +func unmarshalBasicSecretResourcePropertiesBaseArray(body []byte) ([]BasicSecretResourcePropertiesBase, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + srpbArray := make([]BasicSecretResourcePropertiesBase, len(rawMessages)) + + for index, rawMessage := range rawMessages { + srpb, err := unmarshalBasicSecretResourcePropertiesBase(*rawMessage) + if err != nil { + return nil, err + } + srpbArray[index] = srpb + } + return srpbArray, nil +} + +// MarshalJSON is the custom marshaler for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) MarshalJSON() ([]byte, error) { + srpb.Kind = KindSecretResourcePropertiesBase + objectMap := make(map[string]interface{}) + if srpb.Kind != "" { + objectMap["kind"] = srpb.Kind + } + return json.Marshal(objectMap) +} + +// AsSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) AsSecretResourceProperties() (*SecretResourceProperties, bool) { + return nil, false +} + +// AsBasicSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) AsBasicSecretResourceProperties() (BasicSecretResourceProperties, bool) { + return nil, false +} + +// AsInlinedValueSecretResourceProperties is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) AsInlinedValueSecretResourceProperties() (*InlinedValueSecretResourceProperties, bool) { + return nil, false +} + +// AsSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) AsSecretResourcePropertiesBase() (*SecretResourcePropertiesBase, bool) { + return &srpb, true +} + +// AsBasicSecretResourcePropertiesBase is the BasicSecretResourcePropertiesBase implementation for SecretResourcePropertiesBase. +func (srpb SecretResourcePropertiesBase) AsBasicSecretResourcePropertiesBase() (BasicSecretResourcePropertiesBase, bool) { + return &srpb, true +} + +// SecretValue this type represents the unencrypted value of the secret. +type SecretValue struct { + autorest.Response `json:"-"` + // Value - The actual value of the secret. + Value *string `json:"value,omitempty"` +} + +// SecretValueProperties this type describes properties of secret value resource. +type SecretValueProperties struct { + // Value - The actual value of the secret. + Value *string `json:"value,omitempty"` +} + +// SecretValueResourceDescription this type describes a value of a secret resource. The name of this +// resource is the version identifier corresponding to this secret value. +type SecretValueResourceDescription struct { + autorest.Response `json:"-"` + // Name - Version identifier of the secret value. + Name *string `json:"name,omitempty"` + // SecretValueResourceProperties - This type describes properties of a secret value resource. + *SecretValueResourceProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecretValueResourceDescription. +func (svrd SecretValueResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if svrd.Name != nil { + objectMap["name"] = svrd.Name + } + if svrd.SecretValueResourceProperties != nil { + objectMap["properties"] = svrd.SecretValueResourceProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for SecretValueResourceDescription struct. +func (svrd *SecretValueResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + svrd.Name = &name + } + case "properties": + if v != nil { + var secretValueResourceProperties SecretValueResourceProperties + err = json.Unmarshal(*v, &secretValueResourceProperties) + if err != nil { + return err + } + svrd.SecretValueResourceProperties = &secretValueResourceProperties + } + } + } + + return nil +} + +// SecretValueResourceProperties this type describes properties of a secret value resource. +type SecretValueResourceProperties struct { + // Value - The actual value of the secret. + Value *string `json:"value,omitempty"` +} + +// SeedNodeSafetyCheck represents a safety check for the seed nodes being performed by service fabric +// before continuing with node level operations. +type SeedNodeSafetyCheck struct { + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) MarshalJSON() ([]byte, error) { + snsc.Kind = KindEnsureSeedNodeQuorum + objectMap := make(map[string]interface{}) + if snsc.Kind != "" { + objectMap["Kind"] = snsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return nil, false +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return &snsc, true +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for SeedNodeSafetyCheck. +func (snsc SeedNodeSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &snsc, true +} + +// SelectedPartition this class returns information about the partition that the user-induced operation +// acted upon. +type SelectedPartition struct { + // ServiceName - The name of the service the partition belongs to. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` +} + +// ServiceBackupConfigurationInfo backup configuration information for a specific Service Fabric service +// specifying what backup policy is being applied and suspend description, if any. +type ServiceBackupConfigurationInfo struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // PolicyName - The name of the backup policy which is applicable to this Service Fabric application or service or partition. + PolicyName *string `json:"PolicyName,omitempty"` + // PolicyInheritedFrom - Specifies the scope at which the backup policy is applied. Possible values include: 'BackupPolicyScopeInvalid', 'BackupPolicyScopePartition', 'BackupPolicyScopeService', 'BackupPolicyScopeApplication' + PolicyInheritedFrom BackupPolicyScope `json:"PolicyInheritedFrom,omitempty"` + // SuspensionInfo - Describes the backup suspension details. + SuspensionInfo *BackupSuspensionInfo `json:"SuspensionInfo,omitempty"` + // Kind - Possible values include: 'KindBasicBackupConfigurationInfoKindBackupConfigurationInfo', 'KindBasicBackupConfigurationInfoKindApplication', 'KindBasicBackupConfigurationInfoKindService', 'KindBasicBackupConfigurationInfoKindPartition' + Kind KindBasicBackupConfigurationInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) MarshalJSON() ([]byte, error) { + sbci.Kind = KindBasicBackupConfigurationInfoKindService + objectMap := make(map[string]interface{}) + if sbci.ServiceName != nil { + objectMap["ServiceName"] = sbci.ServiceName + } + if sbci.PolicyName != nil { + objectMap["PolicyName"] = sbci.PolicyName + } + if sbci.PolicyInheritedFrom != "" { + objectMap["PolicyInheritedFrom"] = sbci.PolicyInheritedFrom + } + if sbci.SuspensionInfo != nil { + objectMap["SuspensionInfo"] = sbci.SuspensionInfo + } + if sbci.Kind != "" { + objectMap["Kind"] = sbci.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsApplicationBackupConfigurationInfo() (*ApplicationBackupConfigurationInfo, bool) { + return nil, false +} + +// AsServiceBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsServiceBackupConfigurationInfo() (*ServiceBackupConfigurationInfo, bool) { + return &sbci, true +} + +// AsPartitionBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsPartitionBackupConfigurationInfo() (*PartitionBackupConfigurationInfo, bool) { + return nil, false +} + +// AsBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsBackupConfigurationInfo() (*BackupConfigurationInfo, bool) { + return nil, false +} + +// AsBasicBackupConfigurationInfo is the BasicBackupConfigurationInfo implementation for ServiceBackupConfigurationInfo. +func (sbci ServiceBackupConfigurationInfo) AsBasicBackupConfigurationInfo() (BasicBackupConfigurationInfo, bool) { + return &sbci, true +} + +// ServiceBackupEntity identifies the Service Fabric stateful service which is being backed up. +type ServiceBackupEntity struct { + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // EntityKind - Possible values include: 'EntityKindBackupEntity', 'EntityKindApplication1', 'EntityKindService1', 'EntityKindPartition1' + EntityKind EntityKindBasicBackupEntity `json:"EntityKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceBackupEntity. +func (sbe ServiceBackupEntity) MarshalJSON() ([]byte, error) { + sbe.EntityKind = EntityKindService1 + objectMap := make(map[string]interface{}) + if sbe.ServiceName != nil { + objectMap["ServiceName"] = sbe.ServiceName + } + if sbe.EntityKind != "" { + objectMap["EntityKind"] = sbe.EntityKind + } + return json.Marshal(objectMap) +} + +// AsApplicationBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsApplicationBackupEntity() (*ApplicationBackupEntity, bool) { + return nil, false +} + +// AsServiceBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsServiceBackupEntity() (*ServiceBackupEntity, bool) { + return &sbe, true +} + +// AsPartitionBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsPartitionBackupEntity() (*PartitionBackupEntity, bool) { + return nil, false +} + +// AsBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsBackupEntity() (*BackupEntity, bool) { + return nil, false +} + +// AsBasicBackupEntity is the BasicBackupEntity implementation for ServiceBackupEntity. +func (sbe ServiceBackupEntity) AsBasicBackupEntity() (BasicBackupEntity, bool) { + return &sbe, true +} + +// ServiceCorrelationDescription creates a particular correlation between services. +type ServiceCorrelationDescription struct { + // Scheme - The ServiceCorrelationScheme which describes the relationship between this service and the service specified via ServiceName. Possible values include: 'ServiceCorrelationSchemeInvalid', 'ServiceCorrelationSchemeAffinity', 'ServiceCorrelationSchemeAlignedAffinity', 'ServiceCorrelationSchemeNonAlignedAffinity' + Scheme ServiceCorrelationScheme `json:"Scheme,omitempty"` + // ServiceName - The name of the service that the correlation relationship is established with. + ServiceName *string `json:"ServiceName,omitempty"` +} + +// ServiceCreatedEvent service Created event. +type ServiceCreatedEvent struct { + // ServiceTypeName - Service type name. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ApplicationName - Application name. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceInstance - Id of Service instance. + ServiceInstance *int64 `json:"ServiceInstance,omitempty"` + // IsStateful - Indicates if Service is stateful. + IsStateful *bool `json:"IsStateful,omitempty"` + // PartitionCount - Number of partitions. + PartitionCount *int32 `json:"PartitionCount,omitempty"` + // TargetReplicaSetSize - Size of target replicas set. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - Minimum size of replicas set. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ServicePackageVersion - Version of Service package. + ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindServiceCreated + objectMap := make(map[string]interface{}) + if sce.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sce.ServiceTypeName + } + if sce.ApplicationName != nil { + objectMap["ApplicationName"] = sce.ApplicationName + } + if sce.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = sce.ApplicationTypeName + } + if sce.ServiceInstance != nil { + objectMap["ServiceInstance"] = sce.ServiceInstance + } + if sce.IsStateful != nil { + objectMap["IsStateful"] = sce.IsStateful + } + if sce.PartitionCount != nil { + objectMap["PartitionCount"] = sce.PartitionCount + } + if sce.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sce.TargetReplicaSetSize + } + if sce.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sce.MinReplicaSetSize + } + if sce.ServicePackageVersion != nil { + objectMap["ServicePackageVersion"] = sce.ServicePackageVersion + } + if sce.PartitionID != nil { + objectMap["PartitionId"] = sce.PartitionID + } + if sce.ServiceID != nil { + objectMap["ServiceId"] = sce.ServiceID + } + if sce.EventInstanceID != nil { + objectMap["EventInstanceId"] = sce.EventInstanceID + } + if sce.Category != nil { + objectMap["Category"] = sce.Category + } + if sce.TimeStamp != nil { + objectMap["TimeStamp"] = sce.TimeStamp + } + if sce.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = sce.HasCorrelatedEvents + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &sce, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return &sce, true +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceCreatedEvent. +func (sce ServiceCreatedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &sce, true +} + +// ServiceDeletedEvent service Deleted event. +type ServiceDeletedEvent struct { + // ServiceTypeName - Service type name. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // ApplicationName - Application name. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ApplicationTypeName - Application type name. + ApplicationTypeName *string `json:"ApplicationTypeName,omitempty"` + // ServiceInstance - Id of Service instance. + ServiceInstance *int64 `json:"ServiceInstance,omitempty"` + // IsStateful - Indicates if Service is stateful. + IsStateful *bool `json:"IsStateful,omitempty"` + // PartitionCount - Number of partitions. + PartitionCount *int32 `json:"PartitionCount,omitempty"` + // TargetReplicaSetSize - Size of target replicas set. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - Minimum size of replicas set. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ServicePackageVersion - Version of Service package. + ServicePackageVersion *string `json:"ServicePackageVersion,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) MarshalJSON() ([]byte, error) { + sde.Kind = KindServiceDeleted + objectMap := make(map[string]interface{}) + if sde.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sde.ServiceTypeName + } + if sde.ApplicationName != nil { + objectMap["ApplicationName"] = sde.ApplicationName + } + if sde.ApplicationTypeName != nil { + objectMap["ApplicationTypeName"] = sde.ApplicationTypeName + } + if sde.ServiceInstance != nil { + objectMap["ServiceInstance"] = sde.ServiceInstance + } + if sde.IsStateful != nil { + objectMap["IsStateful"] = sde.IsStateful + } + if sde.PartitionCount != nil { + objectMap["PartitionCount"] = sde.PartitionCount + } + if sde.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sde.TargetReplicaSetSize + } + if sde.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sde.MinReplicaSetSize + } + if sde.ServicePackageVersion != nil { + objectMap["ServicePackageVersion"] = sde.ServicePackageVersion + } + if sde.ServiceID != nil { + objectMap["ServiceId"] = sde.ServiceID + } + if sde.EventInstanceID != nil { + objectMap["EventInstanceId"] = sde.EventInstanceID + } + if sde.Category != nil { + objectMap["Category"] = sde.Category + } + if sde.TimeStamp != nil { + objectMap["TimeStamp"] = sde.TimeStamp + } + if sde.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = sde.HasCorrelatedEvents + } + if sde.Kind != "" { + objectMap["Kind"] = sde.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &sde, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return &sde, true +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceDeletedEvent. +func (sde ServiceDeletedEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &sde, true +} + +// BasicServiceDescription a ServiceDescription contains all of the information necessary to create a service. +type BasicServiceDescription interface { + AsStatefulServiceDescription() (*StatefulServiceDescription, bool) + AsStatelessServiceDescription() (*StatelessServiceDescription, bool) + AsServiceDescription() (*ServiceDescription, bool) +} + +// ServiceDescription a ServiceDescription contains all of the information necessary to create a service. +type ServiceDescription struct { + autorest.Response `json:"-"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceDescription(body []byte) (BasicServiceDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceDescriptionServiceKindStateful): + var ssd StatefulServiceDescription + err := json.Unmarshal(body, &ssd) + return ssd, err + case string(ServiceKindBasicServiceDescriptionServiceKindStateless): + var ssd StatelessServiceDescription + err := json.Unmarshal(body, &ssd) + return ssd, err + default: + var sd ServiceDescription + err := json.Unmarshal(body, &sd) + return sd, err + } +} +func unmarshalBasicServiceDescriptionArray(body []byte) ([]BasicServiceDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sdArray := make([]BasicServiceDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sd, err := unmarshalBasicServiceDescription(*rawMessage) + if err != nil { + return nil, err + } + sdArray[index] = sd + } + return sdArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceDescription. +func (sd ServiceDescription) MarshalJSON() ([]byte, error) { + sd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindServiceDescription + objectMap := make(map[string]interface{}) + if sd.ApplicationName != nil { + objectMap["ApplicationName"] = sd.ApplicationName + } + if sd.ServiceName != nil { + objectMap["ServiceName"] = sd.ServiceName + } + if sd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sd.ServiceTypeName + } + if sd.InitializationData != nil { + objectMap["InitializationData"] = sd.InitializationData + } + objectMap["PartitionDescription"] = sd.PartitionDescription + if sd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sd.PlacementConstraints + } + if sd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = sd.CorrelationScheme + } + if sd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = sd.ServiceLoadMetrics + } + if sd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sd.ServicePlacementPolicies + } + if sd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = sd.DefaultMoveCost + } + if sd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = sd.IsDefaultMoveCostSpecified + } + if sd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = sd.ServicePackageActivationMode + } + if sd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = sd.ServiceDNSName + } + if sd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = sd.ScalingPolicies + } + if sd.ServiceKind != "" { + objectMap["ServiceKind"] = sd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return nil, false +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return nil, false +} + +// AsServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return &sd, true +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for ServiceDescription. +func (sd ServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &sd, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceDescription struct. +func (sd *ServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + sd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + sd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + sd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + sd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + sd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + sd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + sd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + sd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + sd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + sd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + sd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// ServiceDescriptionModel ... +type ServiceDescriptionModel struct { + autorest.Response `json:"-"` + Value BasicServiceDescription `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceDescriptionModel struct. +func (sdm *ServiceDescriptionModel) UnmarshalJSON(body []byte) error { + sd, err := unmarshalBasicServiceDescription(body) + if err != nil { + return err + } + sdm.Value = sd + + return nil +} + +// BasicServiceEvent represents the base for all Service Events. +type BasicServiceEvent interface { + AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) + AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) + AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) + AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) + AsServiceEvent() (*ServiceEvent, bool) +} + +// ServiceEvent represents the base for all Service Events. +type ServiceEvent struct { + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +func unmarshalBasicServiceEvent(body []byte) (BasicServiceEvent, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindServiceCreated): + var sce ServiceCreatedEvent + err := json.Unmarshal(body, &sce) + return sce, err + case string(KindServiceDeleted): + var sde ServiceDeletedEvent + err := json.Unmarshal(body, &sde) + return sde, err + case string(KindServiceNewHealthReport): + var snhre ServiceNewHealthReportEvent + err := json.Unmarshal(body, &snhre) + return snhre, err + case string(KindServiceHealthReportExpired): + var shree ServiceHealthReportExpiredEvent + err := json.Unmarshal(body, &shree) + return shree, err + default: + var se ServiceEvent + err := json.Unmarshal(body, &se) + return se, err + } +} +func unmarshalBasicServiceEventArray(body []byte) ([]BasicServiceEvent, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + seArray := make([]BasicServiceEvent, len(rawMessages)) + + for index, rawMessage := range rawMessages { + se, err := unmarshalBasicServiceEvent(*rawMessage) + if err != nil { + return nil, err + } + seArray[index] = se + } + return seArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceEvent. +func (se ServiceEvent) MarshalJSON() ([]byte, error) { + se.Kind = KindServiceEvent + objectMap := make(map[string]interface{}) + if se.ServiceID != nil { + objectMap["ServiceId"] = se.ServiceID + } + if se.EventInstanceID != nil { + objectMap["EventInstanceId"] = se.EventInstanceID + } + if se.Category != nil { + objectMap["Category"] = se.Category + } + if se.TimeStamp != nil { + objectMap["TimeStamp"] = se.TimeStamp + } + if se.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = se.HasCorrelatedEvents + } + if se.Kind != "" { + objectMap["Kind"] = se.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceEvent() (*ServiceEvent, bool) { + return &se, true +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &se, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceEvent. +func (se ServiceEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &se, true +} + +// ServiceFromTemplateDescription defines description for creating a Service Fabric service from a template +// defined in the application manifest. +type ServiceFromTemplateDescription struct { + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data for the newly created service instance. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` +} + +// ServiceHealth information about the health of a Service Fabric service. +type ServiceHealth struct { + autorest.Response `json:"-"` + // Name - The name of the service whose health information is described by this object. + Name *string `json:"Name,omitempty"` + // PartitionHealthStates - The list of partition health states associated with the service. + PartitionHealthStates *[]PartitionHealthState `json:"PartitionHealthStates,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// ServiceHealthEvaluation represents health evaluation for a service, containing information about the +// data and the algorithm used by health store to evaluate health. The evaluation is returned only when the +// aggregated health state is either Error or Warning. +type ServiceHealthEvaluation struct { + // ServiceName - Name of the service whose health evaluation is described by this object. + ServiceName *string `json:"ServiceName,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the service. The types of the unhealthy evaluations can be PartitionsHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) MarshalJSON() ([]byte, error) { + she.Kind = KindService + objectMap := make(map[string]interface{}) + if she.ServiceName != nil { + objectMap["ServiceName"] = she.ServiceName + } + if she.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations + } + if she.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = she.AggregatedHealthState + } + if she.Description != nil { + objectMap["Description"] = she.Description + } + if she.Kind != "" { + objectMap["Kind"] = she.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return &she, true +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServiceHealthEvaluation. +func (she ServiceHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &she, true +} + +// ServiceHealthReportExpiredEvent service Health Report Expired event. +type ServiceHealthReportExpiredEvent struct { + // InstanceID - Id of Service instance. + InstanceID *int64 `json:"InstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + shree.Kind = KindServiceHealthReportExpired + objectMap := make(map[string]interface{}) + if shree.InstanceID != nil { + objectMap["InstanceId"] = shree.InstanceID + } + if shree.SourceID != nil { + objectMap["SourceId"] = shree.SourceID + } + if shree.Property != nil { + objectMap["Property"] = shree.Property + } + if shree.HealthState != nil { + objectMap["HealthState"] = shree.HealthState + } + if shree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = shree.TimeToLiveMs + } + if shree.SequenceNumber != nil { + objectMap["SequenceNumber"] = shree.SequenceNumber + } + if shree.Description != nil { + objectMap["Description"] = shree.Description + } + if shree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = shree.RemoveWhenExpired + } + if shree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = shree.SourceUtcTimestamp + } + if shree.ServiceID != nil { + objectMap["ServiceId"] = shree.ServiceID + } + if shree.EventInstanceID != nil { + objectMap["EventInstanceId"] = shree.EventInstanceID + } + if shree.Category != nil { + objectMap["Category"] = shree.Category + } + if shree.TimeStamp != nil { + objectMap["TimeStamp"] = shree.TimeStamp + } + if shree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = shree.HasCorrelatedEvents + } + if shree.Kind != "" { + objectMap["Kind"] = shree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &shree, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return &shree, true +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceHealthReportExpiredEvent. +func (shree ServiceHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &shree, true +} + +// ServiceHealthState represents the health state of a service, which contains the service identifier and +// its aggregated health state. +type ServiceHealthState struct { + // ServiceName - Name of the service whose health state is represented by this object. + ServiceName *string `json:"ServiceName,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// ServiceHealthStateChunk represents the health state chunk of a service, which contains the service name, +// its aggregated health state and any partitions that respect the filters in the cluster health chunk +// query description. +type ServiceHealthStateChunk struct { + // ServiceName - The name of the service whose health state chunk is provided in this object. + ServiceName *string `json:"ServiceName,omitempty"` + // PartitionHealthStateChunks - The list of partition health state chunks belonging to the service that respect the filters in the cluster health chunk query description. + PartitionHealthStateChunks *PartitionHealthStateChunkList `json:"PartitionHealthStateChunks,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` +} + +// ServiceHealthStateChunkList the list of service health state chunks that respect the input filters in +// the chunk query. Returned by get cluster health state chunks query. +type ServiceHealthStateChunkList struct { + // Items - The list of service health state chunks that respect the input filters in the chunk query. + Items *[]ServiceHealthStateChunk `json:"Items,omitempty"` +} + +// ServiceHealthStateFilter defines matching criteria to determine whether a service should be included as +// a child of an application in the cluster health chunk. +// The services are only returned if the parent application matches a filter specified in the cluster +// health chunk query description. +// One filter can match zero, one or multiple services, depending on its properties. +type ServiceHealthStateFilter struct { + // ServiceNameFilter - The name of the service that matches the filter. The filter is applied only to the specified service, if it exists. + // If the service doesn't exist, no service is returned in the cluster health chunk based on this filter. + // If the service exists, it is included as the application's child if the health state matches the other filter properties. + // If not specified, all services that match the parent filters (if any) are taken into consideration and matched against the other filter members, like health state filter. + ServiceNameFilter *string `json:"ServiceNameFilter,omitempty"` + // HealthStateFilter - The filter for the health state of the services. It allows selecting services if they match the desired health states. + // The possible values are integer value of one of the following health states. Only services that match the filter are returned. All services are used to evaluate the cluster aggregated health state. + // If not specified, default value is None, unless the service name is specified. If the filter has default value and service name is specified, the matching service is returned. + // The state values are flag-based enumeration, so the value could be a combination of these values obtained using bitwise 'OR' operator. + // For example, if the provided value is 6, it matches services with HealthState value of OK (2) and Warning (4). + // - Default - Default value. Matches any HealthState. The value is zero. + // - None - Filter that doesn't match any HealthState value. Used in order to return no results on a given collection of states. The value is 1. + // - Ok - Filter that matches input with HealthState value Ok. The value is 2. + // - Warning - Filter that matches input with HealthState value Warning. The value is 4. + // - Error - Filter that matches input with HealthState value Error. The value is 8. + // - All - Filter that matches input with any HealthState value. The value is 65535. + HealthStateFilter *int32 `json:"HealthStateFilter,omitempty"` + // PartitionFilters - Defines a list of filters that specify which partitions to be included in the returned cluster health chunk as children of the service. The partitions are returned only if the parent service matches a filter. + // If the list is empty, no partitions are returned. All the partitions are used to evaluate the parent service aggregated health state, regardless of the input filters. + // The service filter may specify multiple partition filters. + // For example, it can specify a filter to return all partitions with health state Error and another filter to always include a partition identified by its partition ID. + PartitionFilters *[]PartitionHealthStateFilter `json:"PartitionFilters,omitempty"` +} + +// BasicServiceInfo information about a Service Fabric service. +type BasicServiceInfo interface { + AsStatefulServiceInfo() (*StatefulServiceInfo, bool) + AsStatelessServiceInfo() (*StatelessServiceInfo, bool) + AsServiceInfo() (*ServiceInfo, bool) +} + +// ServiceInfo information about a Service Fabric service. +type ServiceInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceInfo(body []byte) (BasicServiceInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceInfoServiceKindStateful): + var ssi StatefulServiceInfo + err := json.Unmarshal(body, &ssi) + return ssi, err + case string(ServiceKindBasicServiceInfoServiceKindStateless): + var ssi StatelessServiceInfo + err := json.Unmarshal(body, &ssi) + return ssi, err + default: + var si ServiceInfo + err := json.Unmarshal(body, &si) + return si, err + } +} +func unmarshalBasicServiceInfoArray(body []byte) ([]BasicServiceInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + siArray := make([]BasicServiceInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + si, err := unmarshalBasicServiceInfo(*rawMessage) + if err != nil { + return nil, err + } + siArray[index] = si + } + return siArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceInfo. +func (si ServiceInfo) MarshalJSON() ([]byte, error) { + si.ServiceKind = ServiceKindBasicServiceInfoServiceKindServiceInfo + objectMap := make(map[string]interface{}) + if si.ID != nil { + objectMap["Id"] = si.ID + } + if si.Name != nil { + objectMap["Name"] = si.Name + } + if si.TypeName != nil { + objectMap["TypeName"] = si.TypeName + } + if si.ManifestVersion != nil { + objectMap["ManifestVersion"] = si.ManifestVersion + } + if si.HealthState != "" { + objectMap["HealthState"] = si.HealthState + } + if si.ServiceStatus != "" { + objectMap["ServiceStatus"] = si.ServiceStatus + } + if si.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = si.IsServiceGroup + } + if si.ServiceKind != "" { + objectMap["ServiceKind"] = si.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return nil, false +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return nil, false +} + +// AsServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return &si, true +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for ServiceInfo. +func (si ServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &si, true +} + +// ServiceInfoModel ... +type ServiceInfoModel struct { + autorest.Response `json:"-"` + Value BasicServiceInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceInfoModel struct. +func (sim *ServiceInfoModel) UnmarshalJSON(body []byte) error { + si, err := unmarshalBasicServiceInfo(body) + if err != nil { + return err + } + sim.Value = si + + return nil +} + +// ServiceLoadMetricDescription specifies a metric to load balance a service during runtime. +type ServiceLoadMetricDescription struct { + // Name - The name of the metric. If the service chooses to report load during runtime, the load metric name should match the name that is specified in Name exactly. Note that metric names are case-sensitive. + Name *string `json:"Name,omitempty"` + // Weight - The service load metric relative weight, compared to other metrics configured for this service, as a number. Possible values include: 'ServiceLoadMetricWeightZero', 'ServiceLoadMetricWeightLow', 'ServiceLoadMetricWeightMedium', 'ServiceLoadMetricWeightHigh' + Weight ServiceLoadMetricWeight `json:"Weight,omitempty"` + // PrimaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Primary replica. + PrimaryDefaultLoad *int32 `json:"PrimaryDefaultLoad,omitempty"` + // SecondaryDefaultLoad - Used only for Stateful services. The default amount of load, as a number, that this service creates for this metric when it is a Secondary replica. + SecondaryDefaultLoad *int32 `json:"SecondaryDefaultLoad,omitempty"` + // DefaultLoad - Used only for Stateless services. The default amount of load, as a number, that this service creates for this metric. + DefaultLoad *int32 `json:"DefaultLoad,omitempty"` +} + +// ServiceNameInfo information about the service name. +type ServiceNameInfo struct { + autorest.Response `json:"-"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` +} + +// ServiceNewHealthReportEvent service Health Report Created event. +type ServiceNewHealthReportEvent struct { + // InstanceID - Id of Service instance. + InstanceID *int64 `json:"InstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // ServiceID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ServiceID *string `json:"ServiceId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) MarshalJSON() ([]byte, error) { + snhre.Kind = KindServiceNewHealthReport + objectMap := make(map[string]interface{}) + if snhre.InstanceID != nil { + objectMap["InstanceId"] = snhre.InstanceID + } + if snhre.SourceID != nil { + objectMap["SourceId"] = snhre.SourceID + } + if snhre.Property != nil { + objectMap["Property"] = snhre.Property + } + if snhre.HealthState != nil { + objectMap["HealthState"] = snhre.HealthState + } + if snhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = snhre.TimeToLiveMs + } + if snhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = snhre.SequenceNumber + } + if snhre.Description != nil { + objectMap["Description"] = snhre.Description + } + if snhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = snhre.RemoveWhenExpired + } + if snhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = snhre.SourceUtcTimestamp + } + if snhre.ServiceID != nil { + objectMap["ServiceId"] = snhre.ServiceID + } + if snhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = snhre.EventInstanceID + } + if snhre.Category != nil { + objectMap["Category"] = snhre.Category + } + if snhre.TimeStamp != nil { + objectMap["TimeStamp"] = snhre.TimeStamp + } + if snhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = snhre.HasCorrelatedEvents + } + if snhre.Kind != "" { + objectMap["Kind"] = snhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return nil, false +} + +// AsServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return &snhre, true +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return &snhre, true +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for ServiceNewHealthReportEvent. +func (snhre ServiceNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &snhre, true +} + +// BasicServicePartitionInfo information about a partition of a Service Fabric service. +type BasicServicePartitionInfo interface { + AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) + AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) + AsServicePartitionInfo() (*ServicePartitionInfo, bool) +} + +// ServicePartitionInfo information about a partition of a Service Fabric service. +type ServicePartitionInfo struct { + autorest.Response `json:"-"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServicePartitionInfo(body []byte) (BasicServicePartitionInfo, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServicePartitionInfoServiceKindStateful): + var sspi StatefulServicePartitionInfo + err := json.Unmarshal(body, &sspi) + return sspi, err + case string(ServiceKindBasicServicePartitionInfoServiceKindStateless): + var sspi StatelessServicePartitionInfo + err := json.Unmarshal(body, &sspi) + return sspi, err + default: + var spi ServicePartitionInfo + err := json.Unmarshal(body, &spi) + return spi, err + } +} +func unmarshalBasicServicePartitionInfoArray(body []byte) ([]BasicServicePartitionInfo, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + spiArray := make([]BasicServicePartitionInfo, len(rawMessages)) + + for index, rawMessage := range rawMessages { + spi, err := unmarshalBasicServicePartitionInfo(*rawMessage) + if err != nil { + return nil, err + } + spiArray[index] = spi + } + return spiArray, nil +} + +// MarshalJSON is the custom marshaler for ServicePartitionInfo. +func (spi ServicePartitionInfo) MarshalJSON() ([]byte, error) { + spi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo + objectMap := make(map[string]interface{}) + if spi.HealthState != "" { + objectMap["HealthState"] = spi.HealthState + } + if spi.PartitionStatus != "" { + objectMap["PartitionStatus"] = spi.PartitionStatus + } + objectMap["PartitionInformation"] = spi.PartitionInformation + if spi.ServiceKind != "" { + objectMap["ServiceKind"] = spi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return nil, false +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return nil, false +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return &spi, true +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for ServicePartitionInfo. +func (spi ServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &spi, true +} + +// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfo struct. +func (spi *ServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + spi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + spi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + spi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + spi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// ServicePartitionInfoModel ... +type ServicePartitionInfoModel struct { + autorest.Response `json:"-"` + Value BasicServicePartitionInfo `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServicePartitionInfoModel struct. +func (spim *ServicePartitionInfoModel) UnmarshalJSON(body []byte) error { + spi, err := unmarshalBasicServicePartitionInfo(body) + if err != nil { + return err + } + spim.Value = spi + + return nil +} + +// ServicePlacementInvalidDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where a particular fault or upgrade domain should not be used for placement of +// the instances or replicas of that service. +type ServicePlacementInvalidDomainPolicyDescription struct { + // DomainName - The name of the domain that should not be used for placement. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) MarshalJSON() ([]byte, error) { + spidpd.Type = TypeInvalidDomain + objectMap := make(map[string]interface{}) + if spidpd.DomainName != nil { + objectMap["DomainName"] = spidpd.DomainName + } + if spidpd.Type != "" { + objectMap["Type"] = spidpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return &spidpd, true +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementInvalidDomainPolicyDescription. +func (spidpd ServicePlacementInvalidDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spidpd, true +} + +// ServicePlacementNonPartiallyPlaceServicePolicyDescription describes the policy to be used for placement +// of a Service Fabric service where all replicas must be able to be placed in order for any replicas to be +// created. +type ServicePlacementNonPartiallyPlaceServicePolicyDescription struct { + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) MarshalJSON() ([]byte, error) { + spnppspd.Type = TypeNonPartiallyPlaceService + objectMap := make(map[string]interface{}) + if spnppspd.Type != "" { + objectMap["Type"] = spnppspd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return &spnppspd, true +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementNonPartiallyPlaceServicePolicyDescription. +func (spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spnppspd, true +} + +// BasicServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type BasicServicePlacementPolicyDescription interface { + AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) + AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) + AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) + AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) + AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) + AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) +} + +// ServicePlacementPolicyDescription describes the policy to be used for placement of a Service Fabric service. +type ServicePlacementPolicyDescription struct { + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +func unmarshalBasicServicePlacementPolicyDescription(body []byte) (BasicServicePlacementPolicyDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Type"] { + case string(TypeInvalidDomain): + var spidpd ServicePlacementInvalidDomainPolicyDescription + err := json.Unmarshal(body, &spidpd) + return spidpd, err + case string(TypeNonPartiallyPlaceService): + var spnppspd ServicePlacementNonPartiallyPlaceServicePolicyDescription + err := json.Unmarshal(body, &spnppspd) + return spnppspd, err + case string(TypePreferredPrimaryDomain): + var spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription + err := json.Unmarshal(body, &spppdpd) + return spppdpd, err + case string(TypeRequiredDomain): + var sprdpd ServicePlacementRequiredDomainPolicyDescription + err := json.Unmarshal(body, &sprdpd) + return sprdpd, err + case string(TypeRequiredDomainDistribution): + var sprddpd ServicePlacementRequireDomainDistributionPolicyDescription + err := json.Unmarshal(body, &sprddpd) + return sprddpd, err + default: + var sppd ServicePlacementPolicyDescription + err := json.Unmarshal(body, &sppd) + return sppd, err + } +} +func unmarshalBasicServicePlacementPolicyDescriptionArray(body []byte) ([]BasicServicePlacementPolicyDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sppdArray := make([]BasicServicePlacementPolicyDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sppd, err := unmarshalBasicServicePlacementPolicyDescription(*rawMessage) + if err != nil { + return nil, err + } + sppdArray[index] = sppd + } + return sppdArray, nil +} + +// MarshalJSON is the custom marshaler for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) MarshalJSON() ([]byte, error) { + sppd.Type = TypeServicePlacementPolicyDescription + objectMap := make(map[string]interface{}) + if sppd.Type != "" { + objectMap["Type"] = sppd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPolicyDescription. +func (sppd ServicePlacementPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sppd, true +} + +// ServicePlacementPreferPrimaryDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where the service's Primary replicas should optimally be placed in a particular +// domain. +// +// This placement policy is usually used with fault domains in scenarios where the Service Fabric cluster +// is geographically distributed in order to indicate that a service's primary replica should be located in +// a particular fault domain, which in geo-distributed scenarios usually aligns with regional or datacenter +// boundaries. Note that since this is an optimization it is possible that the Primary replica may not end +// up located in this domain due to failures, capacity limits, or other constraints. +type ServicePlacementPreferPrimaryDomainPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) MarshalJSON() ([]byte, error) { + spppdpd.Type = TypePreferredPrimaryDomain + objectMap := make(map[string]interface{}) + if spppdpd.DomainName != nil { + objectMap["DomainName"] = spppdpd.DomainName + } + if spppdpd.Type != "" { + objectMap["Type"] = spppdpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return &spppdpd, true +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementPreferPrimaryDomainPolicyDescription. +func (spppdpd ServicePlacementPreferPrimaryDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &spppdpd, true +} + +// ServicePlacementRequiredDomainPolicyDescription describes the policy to be used for placement of a +// Service Fabric service where the instances or replicas of that service must be placed in a particular +// domain +type ServicePlacementRequiredDomainPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) MarshalJSON() ([]byte, error) { + sprdpd.Type = TypeRequiredDomain + objectMap := make(map[string]interface{}) + if sprdpd.DomainName != nil { + objectMap["DomainName"] = sprdpd.DomainName + } + if sprdpd.Type != "" { + objectMap["Type"] = sprdpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return &sprdpd, true +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequiredDomainPolicyDescription. +func (sprdpd ServicePlacementRequiredDomainPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sprdpd, true +} + +// ServicePlacementRequireDomainDistributionPolicyDescription describes the policy to be used for placement +// of a Service Fabric service where two replicas from the same partition should never be placed in the +// same fault or upgrade domain. +// +// While this is not common it can expose the service to an increased risk of concurrent failures due to +// unplanned outages or other cases of subsequent/concurrent failures. As an example, consider a case where +// replicas are deployed across different data center, with one replica per location. In the event that one +// of the datacenters goes offline, normally the replica that was placed in that datacenter will be packed +// into one of the remaining datacenters. If this is not desirable then this policy should be set. +type ServicePlacementRequireDomainDistributionPolicyDescription struct { + // DomainName - The name of the domain that should used for placement as per this policy. + DomainName *string `json:"DomainName,omitempty"` + // Type - Possible values include: 'TypeServicePlacementPolicyDescription', 'TypeInvalidDomain', 'TypeNonPartiallyPlaceService', 'TypePreferredPrimaryDomain', 'TypeRequiredDomain', 'TypeRequiredDomainDistribution' + Type Type `json:"Type,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) MarshalJSON() ([]byte, error) { + sprddpd.Type = TypeRequiredDomainDistribution + objectMap := make(map[string]interface{}) + if sprddpd.DomainName != nil { + objectMap["DomainName"] = sprddpd.DomainName + } + if sprddpd.Type != "" { + objectMap["Type"] = sprddpd.Type + } + return json.Marshal(objectMap) +} + +// AsServicePlacementInvalidDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementInvalidDomainPolicyDescription() (*ServicePlacementInvalidDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementNonPartiallyPlaceServicePolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementNonPartiallyPlaceServicePolicyDescription() (*ServicePlacementNonPartiallyPlaceServicePolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementPreferPrimaryDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPreferPrimaryDomainPolicyDescription() (*ServicePlacementPreferPrimaryDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequiredDomainPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequiredDomainPolicyDescription() (*ServicePlacementRequiredDomainPolicyDescription, bool) { + return nil, false +} + +// AsServicePlacementRequireDomainDistributionPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementRequireDomainDistributionPolicyDescription() (*ServicePlacementRequireDomainDistributionPolicyDescription, bool) { + return &sprddpd, true +} + +// AsServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsServicePlacementPolicyDescription() (*ServicePlacementPolicyDescription, bool) { + return nil, false +} + +// AsBasicServicePlacementPolicyDescription is the BasicServicePlacementPolicyDescription implementation for ServicePlacementRequireDomainDistributionPolicyDescription. +func (sprddpd ServicePlacementRequireDomainDistributionPolicyDescription) AsBasicServicePlacementPolicyDescription() (BasicServicePlacementPolicyDescription, bool) { + return &sprddpd, true +} + +// ServiceProperties describes properties of a service resource. +type ServiceProperties struct { + // Description - User readable description of the service. + Description *string `json:"description,omitempty"` + // ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified. + ReplicaCount *int32 `json:"replicaCount,omitempty"` + // AutoScalingPolicies - Auto scaling policies + AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"` + // Status - Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the service. + StatusDetails *string `json:"statusDetails,omitempty"` + // HealthState - Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"healthState,omitempty"` + // UnhealthyEvaluation - When the service's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the service is marked unhealthy. + UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"` +} + +// ServiceReplicaDescription describes a replica of a service resource. +type ServiceReplicaDescription struct { + autorest.Response `json:"-"` + // ReplicaName - Name of the replica. + ReplicaName *string `json:"replicaName,omitempty"` + // OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemType `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ServiceReplicaProperties describes the properties of a service replica. +type ServiceReplicaProperties struct { + // OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemType `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` +} + +// ServiceResourceDescription this type describes a service resource. +type ServiceResourceDescription struct { + autorest.Response `json:"-"` + // Name - Name of the Service resource. + Name *string `json:"name,omitempty"` + // ServiceResourceProperties - This type describes properties of a service resource. + *ServiceResourceProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServiceResourceDescription. +func (srd ServiceResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if srd.Name != nil { + objectMap["name"] = srd.Name + } + if srd.ServiceResourceProperties != nil { + objectMap["properties"] = srd.ServiceResourceProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ServiceResourceDescription struct. +func (srd *ServiceResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + srd.Name = &name + } + case "properties": + if v != nil { + var serviceResourceProperties ServiceResourceProperties + err = json.Unmarshal(*v, &serviceResourceProperties) + if err != nil { + return err + } + srd.ServiceResourceProperties = &serviceResourceProperties + } + } + } + + return nil +} + +// ServiceResourceProperties this type describes properties of a service resource. +type ServiceResourceProperties struct { + // OsType - The operation system required by the code in service. Possible values include: 'Linux', 'Windows' + OsType OperatingSystemType `json:"osType,omitempty"` + // CodePackages - Describes the set of code packages that forms the service. A code package describes the container and the properties for running it. All the code packages are started together on the same host and share the same context (network, process etc.). + CodePackages *[]ContainerCodePackageProperties `json:"codePackages,omitempty"` + // NetworkRefs - The names of the private networks that this service needs to be part of. + NetworkRefs *[]NetworkRef `json:"networkRefs,omitempty"` + // Diagnostics - Reference to sinks in DiagnosticsDescription. + Diagnostics *DiagnosticsRef `json:"diagnostics,omitempty"` + // Description - User readable description of the service. + Description *string `json:"description,omitempty"` + // ReplicaCount - The number of replicas of the service to create. Defaults to 1 if not specified. + ReplicaCount *int32 `json:"replicaCount,omitempty"` + // AutoScalingPolicies - Auto scaling policies + AutoScalingPolicies *[]AutoScalingPolicy `json:"autoScalingPolicies,omitempty"` + // Status - Status of the service. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the service. + StatusDetails *string `json:"statusDetails,omitempty"` + // HealthState - Describes the health state of an application resource. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"healthState,omitempty"` + // UnhealthyEvaluation - When the service's health state is not 'Ok', this additional details from service fabric Health Manager for the user to know why the service is marked unhealthy. + UnhealthyEvaluation *string `json:"unhealthyEvaluation,omitempty"` +} + +// ServicesHealthEvaluation represents health evaluation for services of a certain service type belonging +// to an application, containing health evaluations for each unhealthy service that impacted current +// aggregated health state. Can be returned when evaluating application health and the aggregated health +// state is either Error or Warning. +type ServicesHealthEvaluation struct { + // ServiceTypeName - Name of the service type of the services. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // MaxPercentUnhealthyServices - Maximum allowed percentage of unhealthy services from the ServiceTypeHealthPolicy. + MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"` + // TotalCount - Total number of services of the current service type in the application from the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy ServiceHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) MarshalJSON() ([]byte, error) { + she.Kind = KindServices + objectMap := make(map[string]interface{}) + if she.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = she.ServiceTypeName + } + if she.MaxPercentUnhealthyServices != nil { + objectMap["MaxPercentUnhealthyServices"] = she.MaxPercentUnhealthyServices + } + if she.TotalCount != nil { + objectMap["TotalCount"] = she.TotalCount + } + if she.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = she.UnhealthyEvaluations + } + if she.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = she.AggregatedHealthState + } + if she.Description != nil { + objectMap["Description"] = she.Description + } + if she.Kind != "" { + objectMap["Kind"] = she.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return &she, true +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for ServicesHealthEvaluation. +func (she ServicesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &she, true +} + +// BasicServiceTypeDescription describes a service type defined in the service manifest of a provisioned application +// type. The properties the ones defined in the service manifest. +type BasicServiceTypeDescription interface { + AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) + AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) + AsServiceTypeDescription() (*ServiceTypeDescription, bool) +} + +// ServiceTypeDescription describes a service type defined in the service manifest of a provisioned application +// type. The properties the ones defined in the service manifest. +type ServiceTypeDescription struct { + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +func unmarshalBasicServiceTypeDescription(body []byte) (BasicServiceTypeDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["Kind"] { + case string(KindStateful): + var sstd StatefulServiceTypeDescription + err := json.Unmarshal(body, &sstd) + return sstd, err + case string(KindStateless): + var sstd StatelessServiceTypeDescription + err := json.Unmarshal(body, &sstd) + return sstd, err + default: + var std ServiceTypeDescription + err := json.Unmarshal(body, &std) + return std, err + } +} +func unmarshalBasicServiceTypeDescriptionArray(body []byte) ([]BasicServiceTypeDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + stdArray := make([]BasicServiceTypeDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + std, err := unmarshalBasicServiceTypeDescription(*rawMessage) + if err != nil { + return nil, err + } + stdArray[index] = std + } + return stdArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceTypeDescription. +func (std ServiceTypeDescription) MarshalJSON() ([]byte, error) { + std.Kind = KindServiceTypeDescription + objectMap := make(map[string]interface{}) + if std.IsStateful != nil { + objectMap["IsStateful"] = std.IsStateful + } + if std.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = std.ServiceTypeName + } + if std.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = std.PlacementConstraints + } + if std.LoadMetrics != nil { + objectMap["LoadMetrics"] = std.LoadMetrics + } + if std.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = std.ServicePlacementPolicies + } + if std.Extensions != nil { + objectMap["Extensions"] = std.Extensions + } + if std.Kind != "" { + objectMap["Kind"] = std.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return nil, false +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return nil, false +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return &std, true +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for ServiceTypeDescription. +func (std ServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &std, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceTypeDescription struct. +func (std *ServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + std.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + std.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + std.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + std.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + std.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + std.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + std.Kind = kind + } + } + } + + return nil +} + +// ServiceTypeExtensionDescription describes extension of a service type defined in the service manifest. +type ServiceTypeExtensionDescription struct { + // Key - The name of the extension. + Key *string `json:"Key,omitempty"` + // Value - The extension value. + Value *string `json:"Value,omitempty"` +} + +// ServiceTypeHealthPolicy represents the health policy used to evaluate the health of services belonging +// to a service type. +type ServiceTypeHealthPolicy struct { + // MaxPercentUnhealthyPartitionsPerService - The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100 + // The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error. + // If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service. + // The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero. + MaxPercentUnhealthyPartitionsPerService *int32 `json:"MaxPercentUnhealthyPartitionsPerService,omitempty"` + // MaxPercentUnhealthyReplicasPerPartition - The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error. + // If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning. + // The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition. + // The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero. + MaxPercentUnhealthyReplicasPerPartition *int32 `json:"MaxPercentUnhealthyReplicasPerPartition,omitempty"` + // MaxPercentUnhealthyServices - The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100. + // The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error. + // If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning. + // This is calculated by dividing the number of unhealthy services of the specific service type over the total number of services of the specific service type. + // The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero. + MaxPercentUnhealthyServices *int32 `json:"MaxPercentUnhealthyServices,omitempty"` +} + +// ServiceTypeHealthPolicyMapItem defines an item in ServiceTypeHealthPolicyMap. +type ServiceTypeHealthPolicyMapItem struct { + // Key - The key of the service type health policy map item. This is the name of the service type. + Key *string `json:"Key,omitempty"` + // Value - The value of the service type health policy map item. This is the ServiceTypeHealthPolicy for this service type. + Value *ServiceTypeHealthPolicy `json:"Value,omitempty"` +} + +// ServiceTypeInfo information about a service type that is defined in a service manifest of a provisioned +// application type. +type ServiceTypeInfo struct { + autorest.Response `json:"-"` + // ServiceTypeDescription - Describes a service type defined in the service manifest of a provisioned application type. The properties the ones defined in the service manifest. + ServiceTypeDescription BasicServiceTypeDescription `json:"ServiceTypeDescription,omitempty"` + // ServiceManifestName - The name of the service manifest in which this service type is defined. + ServiceManifestName *string `json:"ServiceManifestName,omitempty"` + // ServiceManifestVersion - The version of the service manifest in which this service type is defined. + ServiceManifestVersion *string `json:"ServiceManifestVersion,omitempty"` + // IsServiceGroup - Indicates whether the service is a service group. If it is, the property value is true otherwise false. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for ServiceTypeInfo struct. +func (sti *ServiceTypeInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "ServiceTypeDescription": + if v != nil { + serviceTypeDescription, err := unmarshalBasicServiceTypeDescription(*v) + if err != nil { + return err + } + sti.ServiceTypeDescription = serviceTypeDescription + } + case "ServiceManifestName": + if v != nil { + var serviceManifestName string + err = json.Unmarshal(*v, &serviceManifestName) + if err != nil { + return err + } + sti.ServiceManifestName = &serviceManifestName + } + case "ServiceManifestVersion": + if v != nil { + var serviceManifestVersion string + err = json.Unmarshal(*v, &serviceManifestVersion) + if err != nil { + return err + } + sti.ServiceManifestVersion = &serviceManifestVersion + } + case "IsServiceGroup": + if v != nil { + var isServiceGroup bool + err = json.Unmarshal(*v, &isServiceGroup) + if err != nil { + return err + } + sti.IsServiceGroup = &isServiceGroup + } + } + } + + return nil +} + +// ServiceTypeManifest contains the manifest describing a service type registered as part of an application +// in a Service Fabric cluster. +type ServiceTypeManifest struct { + autorest.Response `json:"-"` + // Manifest - The XML manifest as a string. + Manifest *string `json:"Manifest,omitempty"` +} + +// BasicServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a +// service. +type BasicServiceUpdateDescription interface { + AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) + AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) + AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) +} + +// ServiceUpdateDescription a ServiceUpdateDescription contains all of the information necessary to update a +// service. +type ServiceUpdateDescription struct { + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +func unmarshalBasicServiceUpdateDescription(body []byte) (BasicServiceUpdateDescription, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["ServiceKind"] { + case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateful): + var ssud StatefulServiceUpdateDescription + err := json.Unmarshal(body, &ssud) + return ssud, err + case string(ServiceKindBasicServiceUpdateDescriptionServiceKindStateless): + var ssud StatelessServiceUpdateDescription + err := json.Unmarshal(body, &ssud) + return ssud, err + default: + var sud ServiceUpdateDescription + err := json.Unmarshal(body, &sud) + return sud, err + } +} +func unmarshalBasicServiceUpdateDescriptionArray(body []byte) ([]BasicServiceUpdateDescription, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sudArray := make([]BasicServiceUpdateDescription, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sud, err := unmarshalBasicServiceUpdateDescription(*rawMessage) + if err != nil { + return nil, err + } + sudArray[index] = sud + } + return sudArray, nil +} + +// MarshalJSON is the custom marshaler for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) MarshalJSON() ([]byte, error) { + sud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription + objectMap := make(map[string]interface{}) + if sud.Flags != nil { + objectMap["Flags"] = sud.Flags + } + if sud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sud.PlacementConstraints + } + if sud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = sud.CorrelationScheme + } + if sud.LoadMetrics != nil { + objectMap["LoadMetrics"] = sud.LoadMetrics + } + if sud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sud.ServicePlacementPolicies + } + if sud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = sud.DefaultMoveCost + } + if sud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = sud.ScalingPolicies + } + if sud.ServiceKind != "" { + objectMap["ServiceKind"] = sud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return nil, false +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return nil, false +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return &sud, true +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for ServiceUpdateDescription. +func (sud ServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &sud, true +} + +// UnmarshalJSON is the custom unmarshaler for ServiceUpdateDescription struct. +func (sud *ServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + sud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + sud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + sud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + sud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// Setting describes a setting for the container. The setting file path can be fetched from environment +// variable "Fabric_SettingPath". The path for Windows container is "C:\\secrets". The path for Linux +// container is "/var/secrets". +type Setting struct { + // Name - The name of the setting. + Name *string `json:"name,omitempty"` + // Value - The value of the setting. + Value *string `json:"value,omitempty"` +} + +// SingletonPartitionInformation information about a partition that is singleton. The services with +// singleton partitioning scheme are effectively non-partitioned. They only have one partition. +type SingletonPartitionInformation struct { + // ID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + ID *uuid.UUID `json:"Id,omitempty"` + // ServicePartitionKind - Possible values include: 'ServicePartitionKindPartitionInformation', 'ServicePartitionKindInt64Range1', 'ServicePartitionKindNamed1', 'ServicePartitionKindSingleton1' + ServicePartitionKind ServicePartitionKindBasicPartitionInformation `json:"ServicePartitionKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) MarshalJSON() ([]byte, error) { + spi.ServicePartitionKind = ServicePartitionKindSingleton1 + objectMap := make(map[string]interface{}) + if spi.ID != nil { + objectMap["Id"] = spi.ID + } + if spi.ServicePartitionKind != "" { + objectMap["ServicePartitionKind"] = spi.ServicePartitionKind + } + return json.Marshal(objectMap) +} + +// AsInt64RangePartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsInt64RangePartitionInformation() (*Int64RangePartitionInformation, bool) { + return nil, false +} + +// AsNamedPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsNamedPartitionInformation() (*NamedPartitionInformation, bool) { + return nil, false +} + +// AsSingletonPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsSingletonPartitionInformation() (*SingletonPartitionInformation, bool) { + return &spi, true +} + +// AsPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsPartitionInformation() (*PartitionInformation, bool) { + return nil, false +} + +// AsBasicPartitionInformation is the BasicPartitionInformation implementation for SingletonPartitionInformation. +func (spi SingletonPartitionInformation) AsBasicPartitionInformation() (BasicPartitionInformation, bool) { + return &spi, true +} + +// SingletonPartitionSchemeDescription describes the partition scheme of a singleton-partitioned, or +// non-partitioned service. +type SingletonPartitionSchemeDescription struct { + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) MarshalJSON() ([]byte, error) { + spsd.PartitionScheme = PartitionSchemeSingleton1 + objectMap := make(map[string]interface{}) + if spsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = spsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return &spsd, true +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return nil, false +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for SingletonPartitionSchemeDescription. +func (spsd SingletonPartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &spsd, true +} + +// StartClusterUpgradeDescription describes the parameters for starting a cluster upgrade. +type StartClusterUpgradeDescription struct { + // CodeVersion - The cluster code version. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster configuration version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` + // UpgradeKind - The kind of upgrade out of the following possible values. Possible values include: 'UpgradeKindInvalid', 'UpgradeKindRolling' + UpgradeKind UpgradeKind `json:"UpgradeKind,omitempty"` + // RollingUpgradeMode - The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, and Monitored. Possible values include: 'UpgradeModeInvalid', 'UpgradeModeUnmonitoredAuto', 'UpgradeModeUnmonitoredManual', 'UpgradeModeMonitored' + RollingUpgradeMode UpgradeMode `json:"RollingUpgradeMode,omitempty"` + // UpgradeReplicaSetCheckTimeoutInSeconds - The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer). + UpgradeReplicaSetCheckTimeoutInSeconds *int64 `json:"UpgradeReplicaSetCheckTimeoutInSeconds,omitempty"` + // ForceRestart - If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data). + ForceRestart *bool `json:"ForceRestart,omitempty"` + // MonitoringPolicy - Describes the parameters for monitoring an upgrade in Monitored mode. + MonitoringPolicy *MonitoringPolicyDescription `json:"MonitoringPolicy,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// StartedChaosEvent describes a Chaos event that gets generated when Chaos is started. +type StartedChaosEvent struct { + // ChaosParameters - Defines all the parameters to configure a Chaos run. + ChaosParameters *ChaosParameters `json:"ChaosParameters,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StartedChaosEvent. +func (sce StartedChaosEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindStarted + objectMap := make(map[string]interface{}) + if sce.ChaosParameters != nil { + objectMap["ChaosParameters"] = sce.ChaosParameters + } + if sce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = sce.TimeStampUtc + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return &sce, true +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for StartedChaosEvent. +func (sce StartedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &sce, true +} + +// StatefulReplicaHealthReportExpiredEvent stateful Replica Health Report Expired event. +type StatefulReplicaHealthReportExpiredEvent struct { + // ReplicaInstanceID - Id of Replica instance. + ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + srhree.Kind = KindStatefulReplicaHealthReportExpired + objectMap := make(map[string]interface{}) + if srhree.ReplicaInstanceID != nil { + objectMap["ReplicaInstanceId"] = srhree.ReplicaInstanceID + } + if srhree.SourceID != nil { + objectMap["SourceId"] = srhree.SourceID + } + if srhree.Property != nil { + objectMap["Property"] = srhree.Property + } + if srhree.HealthState != nil { + objectMap["HealthState"] = srhree.HealthState + } + if srhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs + } + if srhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhree.SequenceNumber + } + if srhree.Description != nil { + objectMap["Description"] = srhree.Description + } + if srhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired + } + if srhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp + } + if srhree.PartitionID != nil { + objectMap["PartitionId"] = srhree.PartitionID + } + if srhree.ReplicaID != nil { + objectMap["ReplicaId"] = srhree.ReplicaID + } + if srhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhree.EventInstanceID + } + if srhree.Category != nil { + objectMap["Category"] = srhree.Category + } + if srhree.TimeStamp != nil { + objectMap["TimeStamp"] = srhree.TimeStamp + } + if srhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents + } + if srhree.Kind != "" { + objectMap["Kind"] = srhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhree, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return &srhree, true +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaHealthReportExpiredEvent. +func (srhree StatefulReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhree, true +} + +// StatefulReplicaNewHealthReportEvent stateful Replica Health Report Created event. +type StatefulReplicaNewHealthReportEvent struct { + // ReplicaInstanceID - Id of Replica instance. + ReplicaInstanceID *int64 `json:"ReplicaInstanceId,omitempty"` + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) { + srnhre.Kind = KindStatefulReplicaNewHealthReport + objectMap := make(map[string]interface{}) + if srnhre.ReplicaInstanceID != nil { + objectMap["ReplicaInstanceId"] = srnhre.ReplicaInstanceID + } + if srnhre.SourceID != nil { + objectMap["SourceId"] = srnhre.SourceID + } + if srnhre.Property != nil { + objectMap["Property"] = srnhre.Property + } + if srnhre.HealthState != nil { + objectMap["HealthState"] = srnhre.HealthState + } + if srnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs + } + if srnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = srnhre.SequenceNumber + } + if srnhre.Description != nil { + objectMap["Description"] = srnhre.Description + } + if srnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired + } + if srnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp + } + if srnhre.PartitionID != nil { + objectMap["PartitionId"] = srnhre.PartitionID + } + if srnhre.ReplicaID != nil { + objectMap["ReplicaId"] = srnhre.ReplicaID + } + if srnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = srnhre.EventInstanceID + } + if srnhre.Category != nil { + objectMap["Category"] = srnhre.Category + } + if srnhre.TimeStamp != nil { + objectMap["TimeStamp"] = srnhre.TimeStamp + } + if srnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents + } + if srnhre.Kind != "" { + objectMap["Kind"] = srnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srnhre, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return &srnhre, true +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatefulReplicaNewHealthReportEvent. +func (srnhre StatefulReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srnhre, true +} + +// StatefulServiceDescription describes a stateful service. +type StatefulServiceDescription struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // HasPersistedState - A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for QuorumLossWaitDuration (2) and StandByReplicaKeepDuration(4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 1. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 2. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 4. + Flags *int32 `json:"Flags,omitempty"` + // ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created. + ReplicaRestartWaitDurationSeconds *int64 `json:"ReplicaRestartWaitDurationSeconds,omitempty"` + // QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss. + QuorumLossWaitDurationSeconds *int64 `json:"QuorumLossWaitDurationSeconds,omitempty"` + // StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed. + StandByReplicaKeepDurationSeconds *int64 `json:"StandByReplicaKeepDurationSeconds,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceDescription. +func (ssd StatefulServiceDescription) MarshalJSON() ([]byte, error) { + ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateful + objectMap := make(map[string]interface{}) + if ssd.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = ssd.TargetReplicaSetSize + } + if ssd.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = ssd.MinReplicaSetSize + } + if ssd.HasPersistedState != nil { + objectMap["HasPersistedState"] = ssd.HasPersistedState + } + if ssd.Flags != nil { + objectMap["Flags"] = ssd.Flags + } + if ssd.ReplicaRestartWaitDurationSeconds != nil { + objectMap["ReplicaRestartWaitDurationSeconds"] = ssd.ReplicaRestartWaitDurationSeconds + } + if ssd.QuorumLossWaitDurationSeconds != nil { + objectMap["QuorumLossWaitDurationSeconds"] = ssd.QuorumLossWaitDurationSeconds + } + if ssd.StandByReplicaKeepDurationSeconds != nil { + objectMap["StandByReplicaKeepDurationSeconds"] = ssd.StandByReplicaKeepDurationSeconds + } + if ssd.ApplicationName != nil { + objectMap["ApplicationName"] = ssd.ApplicationName + } + if ssd.ServiceName != nil { + objectMap["ServiceName"] = ssd.ServiceName + } + if ssd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = ssd.ServiceTypeName + } + if ssd.InitializationData != nil { + objectMap["InitializationData"] = ssd.InitializationData + } + objectMap["PartitionDescription"] = ssd.PartitionDescription + if ssd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssd.PlacementConstraints + } + if ssd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssd.CorrelationScheme + } + if ssd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics + } + if ssd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies + } + if ssd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost + } + if ssd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified + } + if ssd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode + } + if ssd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = ssd.ServiceDNSName + } + if ssd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssd.ScalingPolicies + } + if ssd.ServiceKind != "" { + objectMap["ServiceKind"] = ssd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return &ssd, true +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return nil, false +} + +// AsServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return nil, false +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for StatefulServiceDescription. +func (ssd StatefulServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &ssd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceDescription struct. +func (ssd *StatefulServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssd.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssd.MinReplicaSetSize = &minReplicaSetSize + } + case "HasPersistedState": + if v != nil { + var hasPersistedState bool + err = json.Unmarshal(*v, &hasPersistedState) + if err != nil { + return err + } + ssd.HasPersistedState = &hasPersistedState + } + case "Flags": + if v != nil { + var flags int32 + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssd.Flags = &flags + } + case "ReplicaRestartWaitDurationSeconds": + if v != nil { + var replicaRestartWaitDurationSeconds int64 + err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds) + if err != nil { + return err + } + ssd.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds + } + case "QuorumLossWaitDurationSeconds": + if v != nil { + var quorumLossWaitDurationSeconds int64 + err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds) + if err != nil { + return err + } + ssd.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds + } + case "StandByReplicaKeepDurationSeconds": + if v != nil { + var standByReplicaKeepDurationSeconds int64 + err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds) + if err != nil { + return err + } + ssd.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + ssd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + ssd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + ssd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + ssd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatefulServiceInfo information about a stateful Service Fabric service. +type StatefulServiceInfo struct { + // HasPersistedState - Whether the service has persisted state. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceInfo. +func (ssi StatefulServiceInfo) MarshalJSON() ([]byte, error) { + ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if ssi.HasPersistedState != nil { + objectMap["HasPersistedState"] = ssi.HasPersistedState + } + if ssi.ID != nil { + objectMap["Id"] = ssi.ID + } + if ssi.Name != nil { + objectMap["Name"] = ssi.Name + } + if ssi.TypeName != nil { + objectMap["TypeName"] = ssi.TypeName + } + if ssi.ManifestVersion != nil { + objectMap["ManifestVersion"] = ssi.ManifestVersion + } + if ssi.HealthState != "" { + objectMap["HealthState"] = ssi.HealthState + } + if ssi.ServiceStatus != "" { + objectMap["ServiceStatus"] = ssi.ServiceStatus + } + if ssi.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = ssi.IsServiceGroup + } + if ssi.ServiceKind != "" { + objectMap["ServiceKind"] = ssi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return &ssi, true +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return nil, false +} + +// AsServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return nil, false +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for StatefulServiceInfo. +func (ssi StatefulServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &ssi, true +} + +// StatefulServicePartitionInfo information about a partition of a stateful Service Fabric service.. +type StatefulServicePartitionInfo struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int64 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int64 `json:"MinReplicaSetSize,omitempty"` + // LastQuorumLossDuration - The duration for which this partition was in quorum loss. If the partition is currently in quorum loss, it returns the duration since it has been in that state. This field is using ISO8601 format for specifying the duration. + LastQuorumLossDuration *string `json:"LastQuorumLossDuration,omitempty"` + // PrimaryEpoch - An Epoch is a configuration number for the partition as a whole. When the configuration of the replica set changes, for example when the Primary replica changes, the operations that are replicated from the new Primary replica are said to be a new Epoch from the ones which were sent by the old Primary replica. + PrimaryEpoch *Epoch `json:"PrimaryEpoch,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) MarshalJSON() ([]byte, error) { + sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if sspi.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = sspi.TargetReplicaSetSize + } + if sspi.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = sspi.MinReplicaSetSize + } + if sspi.LastQuorumLossDuration != nil { + objectMap["LastQuorumLossDuration"] = sspi.LastQuorumLossDuration + } + if sspi.PrimaryEpoch != nil { + objectMap["PrimaryEpoch"] = sspi.PrimaryEpoch + } + if sspi.HealthState != "" { + objectMap["HealthState"] = sspi.HealthState + } + if sspi.PartitionStatus != "" { + objectMap["PartitionStatus"] = sspi.PartitionStatus + } + objectMap["PartitionInformation"] = sspi.PartitionInformation + if sspi.ServiceKind != "" { + objectMap["ServiceKind"] = sspi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return &sspi, true +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return nil, false +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return nil, false +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatefulServicePartitionInfo. +func (sspi StatefulServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &sspi, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServicePartitionInfo struct. +func (sspi *StatefulServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int64 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + sspi.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int64 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + sspi.MinReplicaSetSize = &minReplicaSetSize + } + case "LastQuorumLossDuration": + if v != nil { + var lastQuorumLossDuration string + err = json.Unmarshal(*v, &lastQuorumLossDuration) + if err != nil { + return err + } + sspi.LastQuorumLossDuration = &lastQuorumLossDuration + } + case "PrimaryEpoch": + if v != nil { + var primaryEpoch Epoch + err = json.Unmarshal(*v, &primaryEpoch) + if err != nil { + return err + } + sspi.PrimaryEpoch = &primaryEpoch + } + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + sspi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + sspi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + sspi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sspi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatefulServiceReplicaHealth represents the health of the stateful service replica. +// Contains the replica aggregated health state, the health events and the unhealthy evaluations. +type StatefulServiceReplicaHealth struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) MarshalJSON() ([]byte, error) { + ssrh.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateful + objectMap := make(map[string]interface{}) + if ssrh.ReplicaID != nil { + objectMap["ReplicaId"] = ssrh.ReplicaID + } + if ssrh.PartitionID != nil { + objectMap["PartitionId"] = ssrh.PartitionID + } + if ssrh.ServiceKind != "" { + objectMap["ServiceKind"] = ssrh.ServiceKind + } + if ssrh.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssrh.AggregatedHealthState + } + if ssrh.HealthEvents != nil { + objectMap["HealthEvents"] = ssrh.HealthEvents + } + if ssrh.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ssrh.UnhealthyEvaluations + } + if ssrh.HealthStatistics != nil { + objectMap["HealthStatistics"] = ssrh.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return &ssrh, true +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return nil, false +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return nil, false +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatefulServiceReplicaHealth. +func (ssrh StatefulServiceReplicaHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &ssrh, true +} + +// StatefulServiceReplicaHealthState represents the health state of the stateful service replica, which +// contains the replica ID and the aggregated health state. +type StatefulServiceReplicaHealthState struct { + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) MarshalJSON() ([]byte, error) { + ssrhs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateful + objectMap := make(map[string]interface{}) + if ssrhs.ReplicaID != nil { + objectMap["ReplicaId"] = ssrhs.ReplicaID + } + if ssrhs.PartitionID != nil { + objectMap["PartitionId"] = ssrhs.PartitionID + } + if ssrhs.ServiceKind != "" { + objectMap["ServiceKind"] = ssrhs.ServiceKind + } + if ssrhs.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssrhs.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return &ssrhs, true +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return nil, false +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return nil, false +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatefulServiceReplicaHealthState. +func (ssrhs StatefulServiceReplicaHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &ssrhs, true +} + +// StatefulServiceReplicaInfo represents a stateful service replica. This includes information about the +// identity, role, status, health, node name, uptime, and other details about the replica. +type StatefulServiceReplicaInfo struct { + // ReplicaRole - The role of a replica of a stateful service. Possible values include: 'ReplicaRoleUnknown', 'ReplicaRoleNone', 'ReplicaRolePrimary', 'ReplicaRoleIdleSecondary', 'ReplicaRoleActiveSecondary' + ReplicaRole ReplicaRole `json:"ReplicaRole,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *string `json:"ReplicaId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) MarshalJSON() ([]byte, error) { + ssri.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateful + objectMap := make(map[string]interface{}) + if ssri.ReplicaRole != "" { + objectMap["ReplicaRole"] = ssri.ReplicaRole + } + if ssri.ReplicaID != nil { + objectMap["ReplicaId"] = ssri.ReplicaID + } + if ssri.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ssri.ReplicaStatus + } + if ssri.HealthState != "" { + objectMap["HealthState"] = ssri.HealthState + } + if ssri.NodeName != nil { + objectMap["NodeName"] = ssri.NodeName + } + if ssri.Address != nil { + objectMap["Address"] = ssri.Address + } + if ssri.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ssri.LastInBuildDurationInSeconds + } + if ssri.ServiceKind != "" { + objectMap["ServiceKind"] = ssri.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return &ssri, true +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return nil, false +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return nil, false +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatefulServiceReplicaInfo. +func (ssri StatefulServiceReplicaInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ssri, true +} + +// StatefulServiceTypeDescription describes a stateful service type defined in the service manifest of a +// provisioned application type. +type StatefulServiceTypeDescription struct { + // HasPersistedState - A flag indicating whether this is a persistent service which stores states on the local disk. If it is then the value of this property is true, if not it is false. + HasPersistedState *bool `json:"HasPersistedState,omitempty"` + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) MarshalJSON() ([]byte, error) { + sstd.Kind = KindStateful + objectMap := make(map[string]interface{}) + if sstd.HasPersistedState != nil { + objectMap["HasPersistedState"] = sstd.HasPersistedState + } + if sstd.IsStateful != nil { + objectMap["IsStateful"] = sstd.IsStateful + } + if sstd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sstd.ServiceTypeName + } + if sstd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sstd.PlacementConstraints + } + if sstd.LoadMetrics != nil { + objectMap["LoadMetrics"] = sstd.LoadMetrics + } + if sstd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies + } + if sstd.Extensions != nil { + objectMap["Extensions"] = sstd.Extensions + } + if sstd.Kind != "" { + objectMap["Kind"] = sstd.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return &sstd, true +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return nil, false +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return nil, false +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatefulServiceTypeDescription. +func (sstd StatefulServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &sstd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceTypeDescription struct. +func (sstd *StatefulServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "HasPersistedState": + if v != nil { + var hasPersistedState bool + err = json.Unmarshal(*v, &hasPersistedState) + if err != nil { + return err + } + sstd.HasPersistedState = &hasPersistedState + } + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + sstd.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sstd.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sstd.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sstd.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sstd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + sstd.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + sstd.Kind = kind + } + } + } + + return nil +} + +// StatefulServiceUpdateDescription describes an update for a stateful service. +type StatefulServiceUpdateDescription struct { + // TargetReplicaSetSize - The target replica set size as a number. + TargetReplicaSetSize *int32 `json:"TargetReplicaSetSize,omitempty"` + // MinReplicaSetSize - The minimum replica set size as a number. + MinReplicaSetSize *int32 `json:"MinReplicaSetSize,omitempty"` + // ReplicaRestartWaitDurationSeconds - The duration, in seconds, between when a replica goes down and when a new replica is created. + ReplicaRestartWaitDurationSeconds *string `json:"ReplicaRestartWaitDurationSeconds,omitempty"` + // QuorumLossWaitDurationSeconds - The maximum duration, in seconds, for which a partition is allowed to be in a state of quorum loss. + QuorumLossWaitDurationSeconds *string `json:"QuorumLossWaitDurationSeconds,omitempty"` + // StandByReplicaKeepDurationSeconds - The definition on how long StandBy replicas should be maintained before being removed. + StandByReplicaKeepDurationSeconds *string `json:"StandByReplicaKeepDurationSeconds,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) MarshalJSON() ([]byte, error) { + ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateful + objectMap := make(map[string]interface{}) + if ssud.TargetReplicaSetSize != nil { + objectMap["TargetReplicaSetSize"] = ssud.TargetReplicaSetSize + } + if ssud.MinReplicaSetSize != nil { + objectMap["MinReplicaSetSize"] = ssud.MinReplicaSetSize + } + if ssud.ReplicaRestartWaitDurationSeconds != nil { + objectMap["ReplicaRestartWaitDurationSeconds"] = ssud.ReplicaRestartWaitDurationSeconds + } + if ssud.QuorumLossWaitDurationSeconds != nil { + objectMap["QuorumLossWaitDurationSeconds"] = ssud.QuorumLossWaitDurationSeconds + } + if ssud.StandByReplicaKeepDurationSeconds != nil { + objectMap["StandByReplicaKeepDurationSeconds"] = ssud.StandByReplicaKeepDurationSeconds + } + if ssud.Flags != nil { + objectMap["Flags"] = ssud.Flags + } + if ssud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssud.PlacementConstraints + } + if ssud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssud.CorrelationScheme + } + if ssud.LoadMetrics != nil { + objectMap["LoadMetrics"] = ssud.LoadMetrics + } + if ssud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies + } + if ssud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost + } + if ssud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssud.ScalingPolicies + } + if ssud.ServiceKind != "" { + objectMap["ServiceKind"] = ssud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return &ssud, true +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return nil, false +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return nil, false +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatefulServiceUpdateDescription. +func (ssud StatefulServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &ssud, true +} + +// UnmarshalJSON is the custom unmarshaler for StatefulServiceUpdateDescription struct. +func (ssud *StatefulServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "TargetReplicaSetSize": + if v != nil { + var targetReplicaSetSize int32 + err = json.Unmarshal(*v, &targetReplicaSetSize) + if err != nil { + return err + } + ssud.TargetReplicaSetSize = &targetReplicaSetSize + } + case "MinReplicaSetSize": + if v != nil { + var minReplicaSetSize int32 + err = json.Unmarshal(*v, &minReplicaSetSize) + if err != nil { + return err + } + ssud.MinReplicaSetSize = &minReplicaSetSize + } + case "ReplicaRestartWaitDurationSeconds": + if v != nil { + var replicaRestartWaitDurationSeconds string + err = json.Unmarshal(*v, &replicaRestartWaitDurationSeconds) + if err != nil { + return err + } + ssud.ReplicaRestartWaitDurationSeconds = &replicaRestartWaitDurationSeconds + } + case "QuorumLossWaitDurationSeconds": + if v != nil { + var quorumLossWaitDurationSeconds string + err = json.Unmarshal(*v, &quorumLossWaitDurationSeconds) + if err != nil { + return err + } + ssud.QuorumLossWaitDurationSeconds = &quorumLossWaitDurationSeconds + } + case "StandByReplicaKeepDurationSeconds": + if v != nil { + var standByReplicaKeepDurationSeconds string + err = json.Unmarshal(*v, &standByReplicaKeepDurationSeconds) + if err != nil { + return err + } + ssud.StandByReplicaKeepDurationSeconds = &standByReplicaKeepDurationSeconds + } + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + ssud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessReplicaHealthReportExpiredEvent stateless Replica Health Report Expired event. +type StatelessReplicaHealthReportExpiredEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) MarshalJSON() ([]byte, error) { + srhree.Kind = KindStatelessReplicaHealthReportExpired + objectMap := make(map[string]interface{}) + if srhree.SourceID != nil { + objectMap["SourceId"] = srhree.SourceID + } + if srhree.Property != nil { + objectMap["Property"] = srhree.Property + } + if srhree.HealthState != nil { + objectMap["HealthState"] = srhree.HealthState + } + if srhree.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srhree.TimeToLiveMs + } + if srhree.SequenceNumber != nil { + objectMap["SequenceNumber"] = srhree.SequenceNumber + } + if srhree.Description != nil { + objectMap["Description"] = srhree.Description + } + if srhree.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srhree.RemoveWhenExpired + } + if srhree.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srhree.SourceUtcTimestamp + } + if srhree.PartitionID != nil { + objectMap["PartitionId"] = srhree.PartitionID + } + if srhree.ReplicaID != nil { + objectMap["ReplicaId"] = srhree.ReplicaID + } + if srhree.EventInstanceID != nil { + objectMap["EventInstanceId"] = srhree.EventInstanceID + } + if srhree.Category != nil { + objectMap["Category"] = srhree.Category + } + if srhree.TimeStamp != nil { + objectMap["TimeStamp"] = srhree.TimeStamp + } + if srhree.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srhree.HasCorrelatedEvents + } + if srhree.Kind != "" { + objectMap["Kind"] = srhree.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srhree, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return &srhree, true +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaHealthReportExpiredEvent. +func (srhree StatelessReplicaHealthReportExpiredEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srhree, true +} + +// StatelessReplicaNewHealthReportEvent stateless Replica Health Report Created event. +type StatelessReplicaNewHealthReportEvent struct { + // SourceID - Id of report source. + SourceID *string `json:"SourceId,omitempty"` + // Property - Describes the property. + Property *string `json:"Property,omitempty"` + // HealthState - Describes the property health state. + HealthState *string `json:"HealthState,omitempty"` + // TimeToLiveMs - Time to live in milli-seconds. + TimeToLiveMs *int64 `json:"TimeToLiveMs,omitempty"` + // SequenceNumber - Sequence number of report. + SequenceNumber *int64 `json:"SequenceNumber,omitempty"` + // Description - Description of report. + Description *string `json:"Description,omitempty"` + // RemoveWhenExpired - Indicates the removal when it expires. + RemoveWhenExpired *bool `json:"RemoveWhenExpired,omitempty"` + // SourceUtcTimestamp - Source time. + SourceUtcTimestamp *date.Time `json:"SourceUtcTimestamp,omitempty"` + // PartitionID - An internal ID used by Service Fabric to uniquely identify a partition. This is a randomly generated GUID when the service was created. The partition ID is unique and does not change for the lifetime of the service. If the same service was deleted and recreated the IDs of its partitions would be different. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ReplicaID - Id of a stateful service replica. ReplicaId is used by Service Fabric to uniquely identify a replica of a partition. It is unique within a partition and does not change for the lifetime of the replica. If a replica gets dropped and another replica gets created on the same node for the same partition, it will get a different value for the id. Sometimes the id of a stateless service instance is also referred as a replica id. + ReplicaID *int64 `json:"ReplicaId,omitempty"` + // EventInstanceID - The identifier for the FabricEvent instance. + EventInstanceID *uuid.UUID `json:"EventInstanceId,omitempty"` + // Category - The category of event. + Category *string `json:"Category,omitempty"` + // TimeStamp - The time event was logged. + TimeStamp *date.Time `json:"TimeStamp,omitempty"` + // HasCorrelatedEvents - Shows there is existing related events available. + HasCorrelatedEvents *bool `json:"HasCorrelatedEvents,omitempty"` + // Kind - Possible values include: 'KindFabricEvent', 'KindApplicationEvent', 'KindClusterEvent', 'KindContainerInstanceEvent', 'KindNodeEvent', 'KindPartitionAnalysisEvent', 'KindPartitionEvent', 'KindReplicaEvent', 'KindServiceEvent', 'KindApplicationCreated', 'KindApplicationDeleted', 'KindApplicationNewHealthReport', 'KindApplicationHealthReportExpired', 'KindApplicationUpgradeCompleted', 'KindApplicationUpgradeDomainCompleted', 'KindApplicationUpgradeRollbackCompleted', 'KindApplicationUpgradeRollbackStarted', 'KindApplicationUpgradeStarted', 'KindDeployedApplicationNewHealthReport', 'KindDeployedApplicationHealthReportExpired', 'KindApplicationProcessExited', 'KindApplicationContainerInstanceExited', 'KindNodeAborted', 'KindNodeAddedToCluster', 'KindNodeClosed', 'KindNodeDeactivateCompleted', 'KindNodeDeactivateStarted', 'KindNodeDown', 'KindNodeNewHealthReport', 'KindNodeHealthReportExpired', 'KindNodeOpenSucceeded', 'KindNodeOpenFailed', 'KindNodeRemovedFromCluster', 'KindNodeUp', 'KindPartitionNewHealthReport', 'KindPartitionHealthReportExpired', 'KindPartitionReconfigured', 'KindPartitionPrimaryMoveAnalysis', 'KindServiceCreated', 'KindServiceDeleted', 'KindServiceNewHealthReport', 'KindServiceHealthReportExpired', 'KindDeployedServicePackageNewHealthReport', 'KindDeployedServicePackageHealthReportExpired', 'KindStatefulReplicaNewHealthReport', 'KindStatefulReplicaHealthReportExpired', 'KindStatelessReplicaNewHealthReport', 'KindStatelessReplicaHealthReportExpired', 'KindClusterNewHealthReport', 'KindClusterHealthReportExpired', 'KindClusterUpgradeCompleted', 'KindClusterUpgradeDomainCompleted', 'KindClusterUpgradeRollbackCompleted', 'KindClusterUpgradeRollbackStarted', 'KindClusterUpgradeStarted', 'KindChaosStopped', 'KindChaosStarted', 'KindChaosCodePackageRestartScheduled', 'KindChaosReplicaRemovalScheduled', 'KindChaosPartitionSecondaryMoveScheduled', 'KindChaosPartitionPrimaryMoveScheduled', 'KindChaosReplicaRestartScheduled', 'KindChaosNodeRestartScheduled' + Kind KindBasicFabricEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) MarshalJSON() ([]byte, error) { + srnhre.Kind = KindStatelessReplicaNewHealthReport + objectMap := make(map[string]interface{}) + if srnhre.SourceID != nil { + objectMap["SourceId"] = srnhre.SourceID + } + if srnhre.Property != nil { + objectMap["Property"] = srnhre.Property + } + if srnhre.HealthState != nil { + objectMap["HealthState"] = srnhre.HealthState + } + if srnhre.TimeToLiveMs != nil { + objectMap["TimeToLiveMs"] = srnhre.TimeToLiveMs + } + if srnhre.SequenceNumber != nil { + objectMap["SequenceNumber"] = srnhre.SequenceNumber + } + if srnhre.Description != nil { + objectMap["Description"] = srnhre.Description + } + if srnhre.RemoveWhenExpired != nil { + objectMap["RemoveWhenExpired"] = srnhre.RemoveWhenExpired + } + if srnhre.SourceUtcTimestamp != nil { + objectMap["SourceUtcTimestamp"] = srnhre.SourceUtcTimestamp + } + if srnhre.PartitionID != nil { + objectMap["PartitionId"] = srnhre.PartitionID + } + if srnhre.ReplicaID != nil { + objectMap["ReplicaId"] = srnhre.ReplicaID + } + if srnhre.EventInstanceID != nil { + objectMap["EventInstanceId"] = srnhre.EventInstanceID + } + if srnhre.Category != nil { + objectMap["Category"] = srnhre.Category + } + if srnhre.TimeStamp != nil { + objectMap["TimeStamp"] = srnhre.TimeStamp + } + if srnhre.HasCorrelatedEvents != nil { + objectMap["HasCorrelatedEvents"] = srnhre.HasCorrelatedEvents + } + if srnhre.Kind != "" { + objectMap["Kind"] = srnhre.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationEvent() (*ApplicationEvent, bool) { + return nil, false +} + +// AsBasicApplicationEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicApplicationEvent() (BasicApplicationEvent, bool) { + return nil, false +} + +// AsClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterEvent() (*ClusterEvent, bool) { + return nil, false +} + +// AsBasicClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicClusterEvent() (BasicClusterEvent, bool) { + return nil, false +} + +// AsContainerInstanceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsContainerInstanceEvent() (*ContainerInstanceEvent, bool) { + return nil, false +} + +// AsNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeEvent() (*NodeEvent, bool) { + return nil, false +} + +// AsBasicNodeEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicNodeEvent() (BasicNodeEvent, bool) { + return nil, false +} + +// AsPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionAnalysisEvent() (*PartitionAnalysisEvent, bool) { + return nil, false +} + +// AsBasicPartitionAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionAnalysisEvent() (BasicPartitionAnalysisEvent, bool) { + return nil, false +} + +// AsPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionEvent() (*PartitionEvent, bool) { + return nil, false +} + +// AsBasicPartitionEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicPartitionEvent() (BasicPartitionEvent, bool) { + return nil, false +} + +// AsReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsReplicaEvent() (*ReplicaEvent, bool) { + return nil, false +} + +// AsBasicReplicaEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicReplicaEvent() (BasicReplicaEvent, bool) { + return &srnhre, true +} + +// AsServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceEvent() (*ServiceEvent, bool) { + return nil, false +} + +// AsBasicServiceEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicServiceEvent() (BasicServiceEvent, bool) { + return nil, false +} + +// AsApplicationCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationCreatedEvent() (*ApplicationCreatedEvent, bool) { + return nil, false +} + +// AsApplicationDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationDeletedEvent() (*ApplicationDeletedEvent, bool) { + return nil, false +} + +// AsApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationNewHealthReportEvent() (*ApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationHealthReportExpiredEvent() (*ApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeCompletedEvent() (*ApplicationUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeDomainCompletedEvent() (*ApplicationUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackCompletedEvent() (*ApplicationUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeRollbackStartedEvent() (*ApplicationUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsApplicationUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationUpgradeStartedEvent() (*ApplicationUpgradeStartedEvent, bool) { + return nil, false +} + +// AsDeployedApplicationNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationNewHealthReportEvent() (*DeployedApplicationNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedApplicationHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedApplicationHealthReportExpiredEvent() (*DeployedApplicationHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsApplicationProcessExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationProcessExitedEvent() (*ApplicationProcessExitedEvent, bool) { + return nil, false +} + +// AsApplicationContainerInstanceExitedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsApplicationContainerInstanceExitedEvent() (*ApplicationContainerInstanceExitedEvent, bool) { + return nil, false +} + +// AsNodeAbortedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAbortedEvent() (*NodeAbortedEvent, bool) { + return nil, false +} + +// AsNodeAddedToClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeAddedToClusterEvent() (*NodeAddedToClusterEvent, bool) { + return nil, false +} + +// AsNodeClosedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeClosedEvent() (*NodeClosedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateCompletedEvent() (*NodeDeactivateCompletedEvent, bool) { + return nil, false +} + +// AsNodeDeactivateStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDeactivateStartedEvent() (*NodeDeactivateStartedEvent, bool) { + return nil, false +} + +// AsNodeDownEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeDownEvent() (*NodeDownEvent, bool) { + return nil, false +} + +// AsNodeNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeNewHealthReportEvent() (*NodeNewHealthReportEvent, bool) { + return nil, false +} + +// AsNodeHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeHealthReportExpiredEvent() (*NodeHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsNodeOpenSucceededEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenSucceededEvent() (*NodeOpenSucceededEvent, bool) { + return nil, false +} + +// AsNodeOpenFailedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeOpenFailedEvent() (*NodeOpenFailedEvent, bool) { + return nil, false +} + +// AsNodeRemovedFromClusterEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeRemovedFromClusterEvent() (*NodeRemovedFromClusterEvent, bool) { + return nil, false +} + +// AsNodeUpEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsNodeUpEvent() (*NodeUpEvent, bool) { + return nil, false +} + +// AsPartitionNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionNewHealthReportEvent() (*PartitionNewHealthReportEvent, bool) { + return nil, false +} + +// AsPartitionHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionHealthReportExpiredEvent() (*PartitionHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsPartitionReconfiguredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionReconfiguredEvent() (*PartitionReconfiguredEvent, bool) { + return nil, false +} + +// AsPartitionPrimaryMoveAnalysisEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsPartitionPrimaryMoveAnalysisEvent() (*PartitionPrimaryMoveAnalysisEvent, bool) { + return nil, false +} + +// AsServiceCreatedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceCreatedEvent() (*ServiceCreatedEvent, bool) { + return nil, false +} + +// AsServiceDeletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceDeletedEvent() (*ServiceDeletedEvent, bool) { + return nil, false +} + +// AsServiceNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceNewHealthReportEvent() (*ServiceNewHealthReportEvent, bool) { + return nil, false +} + +// AsServiceHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsServiceHealthReportExpiredEvent() (*ServiceHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageNewHealthReportEvent() (*DeployedServicePackageNewHealthReportEvent, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsDeployedServicePackageHealthReportExpiredEvent() (*DeployedServicePackageHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatefulReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaNewHealthReportEvent() (*StatefulReplicaNewHealthReportEvent, bool) { + return nil, false +} + +// AsStatefulReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsStatefulReplicaHealthReportExpiredEvent() (*StatefulReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsStatelessReplicaNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaNewHealthReportEvent() (*StatelessReplicaNewHealthReportEvent, bool) { + return &srnhre, true +} + +// AsStatelessReplicaHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsStatelessReplicaHealthReportExpiredEvent() (*StatelessReplicaHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterNewHealthReportEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterNewHealthReportEvent() (*ClusterNewHealthReportEvent, bool) { + return nil, false +} + +// AsClusterHealthReportExpiredEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterHealthReportExpiredEvent() (*ClusterHealthReportExpiredEvent, bool) { + return nil, false +} + +// AsClusterUpgradeCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeCompletedEvent() (*ClusterUpgradeCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeDomainCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeDomainCompletedEvent() (*ClusterUpgradeDomainCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackCompletedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackCompletedEvent() (*ClusterUpgradeRollbackCompletedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeRollbackStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeRollbackStartedEvent() (*ClusterUpgradeRollbackStartedEvent, bool) { + return nil, false +} + +// AsClusterUpgradeStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsClusterUpgradeStartedEvent() (*ClusterUpgradeStartedEvent, bool) { + return nil, false +} + +// AsChaosStoppedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStoppedEvent() (*ChaosStoppedEvent, bool) { + return nil, false +} + +// AsChaosStartedEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosStartedEvent() (*ChaosStartedEvent, bool) { + return nil, false +} + +// AsChaosCodePackageRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosCodePackageRestartScheduledEvent() (*ChaosCodePackageRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRemovalScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRemovalScheduledEvent() (*ChaosReplicaRemovalScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionSecondaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionSecondaryMoveScheduledEvent() (*ChaosPartitionSecondaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosPartitionPrimaryMoveScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosPartitionPrimaryMoveScheduledEvent() (*ChaosPartitionPrimaryMoveScheduledEvent, bool) { + return nil, false +} + +// AsChaosReplicaRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosReplicaRestartScheduledEvent() (*ChaosReplicaRestartScheduledEvent, bool) { + return nil, false +} + +// AsChaosNodeRestartScheduledEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsChaosNodeRestartScheduledEvent() (*ChaosNodeRestartScheduledEvent, bool) { + return nil, false +} + +// AsFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsFabricEvent() (*FabricEvent, bool) { + return nil, false +} + +// AsBasicFabricEvent is the BasicFabricEvent implementation for StatelessReplicaNewHealthReportEvent. +func (srnhre StatelessReplicaNewHealthReportEvent) AsBasicFabricEvent() (BasicFabricEvent, bool) { + return &srnhre, true +} + +// StatelessServiceDescription describes a stateless service. +type StatelessServiceDescription struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"InstanceCount,omitempty"` + // ApplicationName - The name of the application, including the 'fabric:' URI scheme. + ApplicationName *string `json:"ApplicationName,omitempty"` + // ServiceName - The full name of the service with 'fabric:' URI scheme. + ServiceName *string `json:"ServiceName,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // InitializationData - The initialization data as an array of bytes. Initialization data is passed to service instances or replicas when they are created. + InitializationData *[]int32 `json:"InitializationData,omitempty"` + // PartitionDescription - The partition description as an object. + PartitionDescription BasicPartitionSchemeDescription `json:"PartitionDescription,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // ServiceLoadMetrics - The service load metrics. + ServiceLoadMetrics *[]ServiceLoadMetricDescription `json:"ServiceLoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // IsDefaultMoveCostSpecified - Indicates if the DefaultMoveCost property is specified. + IsDefaultMoveCostSpecified *bool `json:"IsDefaultMoveCostSpecified,omitempty"` + // ServicePackageActivationMode - The activation mode of service package to be used for a service. Possible values include: 'SharedProcess', 'ExclusiveProcess' + ServicePackageActivationMode ServicePackageActivationMode `json:"ServicePackageActivationMode,omitempty"` + // ServiceDNSName - The DNS name of the service. It requires the DNS system service to be enabled in Service Fabric cluster. + ServiceDNSName *string `json:"ServiceDnsName,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceDescriptionServiceKindServiceDescription', 'ServiceKindBasicServiceDescriptionServiceKindStateful', 'ServiceKindBasicServiceDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceDescription. +func (ssd StatelessServiceDescription) MarshalJSON() ([]byte, error) { + ssd.ServiceKind = ServiceKindBasicServiceDescriptionServiceKindStateless + objectMap := make(map[string]interface{}) + if ssd.InstanceCount != nil { + objectMap["InstanceCount"] = ssd.InstanceCount + } + if ssd.ApplicationName != nil { + objectMap["ApplicationName"] = ssd.ApplicationName + } + if ssd.ServiceName != nil { + objectMap["ServiceName"] = ssd.ServiceName + } + if ssd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = ssd.ServiceTypeName + } + if ssd.InitializationData != nil { + objectMap["InitializationData"] = ssd.InitializationData + } + objectMap["PartitionDescription"] = ssd.PartitionDescription + if ssd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssd.PlacementConstraints + } + if ssd.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssd.CorrelationScheme + } + if ssd.ServiceLoadMetrics != nil { + objectMap["ServiceLoadMetrics"] = ssd.ServiceLoadMetrics + } + if ssd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssd.ServicePlacementPolicies + } + if ssd.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssd.DefaultMoveCost + } + if ssd.IsDefaultMoveCostSpecified != nil { + objectMap["IsDefaultMoveCostSpecified"] = ssd.IsDefaultMoveCostSpecified + } + if ssd.ServicePackageActivationMode != "" { + objectMap["ServicePackageActivationMode"] = ssd.ServicePackageActivationMode + } + if ssd.ServiceDNSName != nil { + objectMap["ServiceDnsName"] = ssd.ServiceDNSName + } + if ssd.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssd.ScalingPolicies + } + if ssd.ServiceKind != "" { + objectMap["ServiceKind"] = ssd.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsStatefulServiceDescription() (*StatefulServiceDescription, bool) { + return nil, false +} + +// AsStatelessServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsStatelessServiceDescription() (*StatelessServiceDescription, bool) { + return &ssd, true +} + +// AsServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsServiceDescription() (*ServiceDescription, bool) { + return nil, false +} + +// AsBasicServiceDescription is the BasicServiceDescription implementation for StatelessServiceDescription. +func (ssd StatelessServiceDescription) AsBasicServiceDescription() (BasicServiceDescription, bool) { + return &ssd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceDescription struct. +func (ssd *StatelessServiceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssd.InstanceCount = &instanceCount + } + case "ApplicationName": + if v != nil { + var applicationName string + err = json.Unmarshal(*v, &applicationName) + if err != nil { + return err + } + ssd.ApplicationName = &applicationName + } + case "ServiceName": + if v != nil { + var serviceName string + err = json.Unmarshal(*v, &serviceName) + if err != nil { + return err + } + ssd.ServiceName = &serviceName + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + ssd.ServiceTypeName = &serviceTypeName + } + case "InitializationData": + if v != nil { + var initializationData []int32 + err = json.Unmarshal(*v, &initializationData) + if err != nil { + return err + } + ssd.InitializationData = &initializationData + } + case "PartitionDescription": + if v != nil { + partitionDescription, err := unmarshalBasicPartitionSchemeDescription(*v) + if err != nil { + return err + } + ssd.PartitionDescription = partitionDescription + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssd.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssd.CorrelationScheme = &correlationScheme + } + case "ServiceLoadMetrics": + if v != nil { + var serviceLoadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &serviceLoadMetrics) + if err != nil { + return err + } + ssd.ServiceLoadMetrics = &serviceLoadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssd.DefaultMoveCost = defaultMoveCost + } + case "IsDefaultMoveCostSpecified": + if v != nil { + var isDefaultMoveCostSpecified bool + err = json.Unmarshal(*v, &isDefaultMoveCostSpecified) + if err != nil { + return err + } + ssd.IsDefaultMoveCostSpecified = &isDefaultMoveCostSpecified + } + case "ServicePackageActivationMode": + if v != nil { + var servicePackageActivationMode ServicePackageActivationMode + err = json.Unmarshal(*v, &servicePackageActivationMode) + if err != nil { + return err + } + ssd.ServicePackageActivationMode = servicePackageActivationMode + } + case "ServiceDnsName": + if v != nil { + var serviceDNSName string + err = json.Unmarshal(*v, &serviceDNSName) + if err != nil { + return err + } + ssd.ServiceDNSName = &serviceDNSName + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssd.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssd.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessServiceInfo information about a stateless Service Fabric service. +type StatelessServiceInfo struct { + // ID - The identity of the service. This ID is an encoded representation of the service name. This is used in the REST APIs to identify the service resource. + // Starting in version 6.0, hierarchical names are delimited with the "\~" character. For example, if the service name is "fabric:/myapp/app1/svc1", + // the service identity would be "myapp~app1\~svc1" in 6.0+ and "myapp/app1/svc1" in previous versions. + ID *string `json:"Id,omitempty"` + // Name - The full name of the service with 'fabric:' URI scheme. + Name *string `json:"Name,omitempty"` + // TypeName - Name of the service type as specified in the service manifest. + TypeName *string `json:"TypeName,omitempty"` + // ManifestVersion - The version of the service manifest. + ManifestVersion *string `json:"ManifestVersion,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // ServiceStatus - The status of the application. Possible values include: 'ServiceStatusUnknown', 'ServiceStatusActive', 'ServiceStatusUpgrading', 'ServiceStatusDeleting', 'ServiceStatusCreating', 'ServiceStatusFailed' + ServiceStatus ServiceStatus `json:"ServiceStatus,omitempty"` + // IsServiceGroup - Whether the service is in a service group. + IsServiceGroup *bool `json:"IsServiceGroup,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceInfoServiceKindServiceInfo', 'ServiceKindBasicServiceInfoServiceKindStateful', 'ServiceKindBasicServiceInfoServiceKindStateless' + ServiceKind ServiceKindBasicServiceInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInfo. +func (ssi StatelessServiceInfo) MarshalJSON() ([]byte, error) { + ssi.ServiceKind = ServiceKindBasicServiceInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if ssi.ID != nil { + objectMap["Id"] = ssi.ID + } + if ssi.Name != nil { + objectMap["Name"] = ssi.Name + } + if ssi.TypeName != nil { + objectMap["TypeName"] = ssi.TypeName + } + if ssi.ManifestVersion != nil { + objectMap["ManifestVersion"] = ssi.ManifestVersion + } + if ssi.HealthState != "" { + objectMap["HealthState"] = ssi.HealthState + } + if ssi.ServiceStatus != "" { + objectMap["ServiceStatus"] = ssi.ServiceStatus + } + if ssi.IsServiceGroup != nil { + objectMap["IsServiceGroup"] = ssi.IsServiceGroup + } + if ssi.ServiceKind != "" { + objectMap["ServiceKind"] = ssi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsStatefulServiceInfo() (*StatefulServiceInfo, bool) { + return nil, false +} + +// AsStatelessServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsStatelessServiceInfo() (*StatelessServiceInfo, bool) { + return &ssi, true +} + +// AsServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsServiceInfo() (*ServiceInfo, bool) { + return nil, false +} + +// AsBasicServiceInfo is the BasicServiceInfo implementation for StatelessServiceInfo. +func (ssi StatelessServiceInfo) AsBasicServiceInfo() (BasicServiceInfo, bool) { + return &ssi, true +} + +// StatelessServiceInstanceHealth represents the health of the stateless service instance. +// Contains the instance aggregated health state, the health events and the unhealthy evaluations. +type StatelessServiceInstanceHealth struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // PartitionID - Id of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthServiceKindReplicaHealth', 'ServiceKindBasicReplicaHealthServiceKindStateful', 'ServiceKindBasicReplicaHealthServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealth `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The HealthState representing the aggregated health state of the entity computed by Health Manager. + // The health evaluation of the entity reflects all events reported on the entity and its children (if any). + // The aggregation is done by applying the desired health policy. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // HealthEvents - The list of health events reported on the entity. + HealthEvents *[]HealthEvent `json:"HealthEvents,omitempty"` + // UnhealthyEvaluations - The unhealthy evaluations that show why the current aggregated health state was returned by Health Manager. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // HealthStatistics - Shows the health statistics for all children types of the queried entity. + HealthStatistics *HealthStatistics `json:"HealthStatistics,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) MarshalJSON() ([]byte, error) { + ssih.ServiceKind = ServiceKindBasicReplicaHealthServiceKindStateless + objectMap := make(map[string]interface{}) + if ssih.InstanceID != nil { + objectMap["InstanceId"] = ssih.InstanceID + } + if ssih.PartitionID != nil { + objectMap["PartitionId"] = ssih.PartitionID + } + if ssih.ServiceKind != "" { + objectMap["ServiceKind"] = ssih.ServiceKind + } + if ssih.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssih.AggregatedHealthState + } + if ssih.HealthEvents != nil { + objectMap["HealthEvents"] = ssih.HealthEvents + } + if ssih.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = ssih.UnhealthyEvaluations + } + if ssih.HealthStatistics != nil { + objectMap["HealthStatistics"] = ssih.HealthStatistics + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsStatefulServiceReplicaHealth() (*StatefulServiceReplicaHealth, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsStatelessServiceInstanceHealth() (*StatelessServiceInstanceHealth, bool) { + return &ssih, true +} + +// AsReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsReplicaHealth() (*ReplicaHealth, bool) { + return nil, false +} + +// AsBasicReplicaHealth is the BasicReplicaHealth implementation for StatelessServiceInstanceHealth. +func (ssih StatelessServiceInstanceHealth) AsBasicReplicaHealth() (BasicReplicaHealth, bool) { + return &ssih, true +} + +// StatelessServiceInstanceHealthState represents the health state of the stateless service instance, which +// contains the instance ID and the aggregated health state. +type StatelessServiceInstanceHealthState struct { + // ReplicaID - Id of the stateless service instance on the wire this field is called ReplicaId. + ReplicaID *string `json:"ReplicaId,omitempty"` + // PartitionID - The ID of the partition to which this replica belongs. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaHealthStateServiceKindReplicaHealthState', 'ServiceKindBasicReplicaHealthStateServiceKindStateful', 'ServiceKindBasicReplicaHealthStateServiceKindStateless' + ServiceKind ServiceKindBasicReplicaHealthState `json:"ServiceKind,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) MarshalJSON() ([]byte, error) { + ssihs.ServiceKind = ServiceKindBasicReplicaHealthStateServiceKindStateless + objectMap := make(map[string]interface{}) + if ssihs.ReplicaID != nil { + objectMap["ReplicaId"] = ssihs.ReplicaID + } + if ssihs.PartitionID != nil { + objectMap["PartitionId"] = ssihs.PartitionID + } + if ssihs.ServiceKind != "" { + objectMap["ServiceKind"] = ssihs.ServiceKind + } + if ssihs.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = ssihs.AggregatedHealthState + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsStatefulServiceReplicaHealthState() (*StatefulServiceReplicaHealthState, bool) { + return nil, false +} + +// AsStatelessServiceInstanceHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsStatelessServiceInstanceHealthState() (*StatelessServiceInstanceHealthState, bool) { + return &ssihs, true +} + +// AsReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsReplicaHealthState() (*ReplicaHealthState, bool) { + return nil, false +} + +// AsBasicReplicaHealthState is the BasicReplicaHealthState implementation for StatelessServiceInstanceHealthState. +func (ssihs StatelessServiceInstanceHealthState) AsBasicReplicaHealthState() (BasicReplicaHealthState, bool) { + return &ssihs, true +} + +// StatelessServiceInstanceInfo represents a stateless service instance. This includes information about +// the identity, status, health, node name, uptime, and other details about the instance. +type StatelessServiceInstanceInfo struct { + // InstanceID - Id of a stateless service instance. InstanceId is used by Service Fabric to uniquely identify an instance of a partition of a stateless service. It is unique within a partition and does not change for the lifetime of the instance. If the instance has failed over on the same or different node, it will get a different value for the InstanceId. + InstanceID *string `json:"InstanceId,omitempty"` + // ReplicaStatus - The status of a replica of a service. Possible values include: 'ReplicaStatusInvalid', 'ReplicaStatusInBuild', 'ReplicaStatusStandby', 'ReplicaStatusReady', 'ReplicaStatusDown', 'ReplicaStatusDropped' + ReplicaStatus ReplicaStatus `json:"ReplicaStatus,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // NodeName - The name of a Service Fabric node. + NodeName *string `json:"NodeName,omitempty"` + // Address - The address the replica is listening on. + Address *string `json:"Address,omitempty"` + // LastInBuildDurationInSeconds - The last in build duration of the replica in seconds. + LastInBuildDurationInSeconds *string `json:"LastInBuildDurationInSeconds,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicReplicaInfoServiceKindReplicaInfo', 'ServiceKindBasicReplicaInfoServiceKindStateful', 'ServiceKindBasicReplicaInfoServiceKindStateless' + ServiceKind ServiceKindBasicReplicaInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) MarshalJSON() ([]byte, error) { + ssii.ServiceKind = ServiceKindBasicReplicaInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if ssii.InstanceID != nil { + objectMap["InstanceId"] = ssii.InstanceID + } + if ssii.ReplicaStatus != "" { + objectMap["ReplicaStatus"] = ssii.ReplicaStatus + } + if ssii.HealthState != "" { + objectMap["HealthState"] = ssii.HealthState + } + if ssii.NodeName != nil { + objectMap["NodeName"] = ssii.NodeName + } + if ssii.Address != nil { + objectMap["Address"] = ssii.Address + } + if ssii.LastInBuildDurationInSeconds != nil { + objectMap["LastInBuildDurationInSeconds"] = ssii.LastInBuildDurationInSeconds + } + if ssii.ServiceKind != "" { + objectMap["ServiceKind"] = ssii.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsStatefulServiceReplicaInfo() (*StatefulServiceReplicaInfo, bool) { + return nil, false +} + +// AsStatelessServiceInstanceInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsStatelessServiceInstanceInfo() (*StatelessServiceInstanceInfo, bool) { + return &ssii, true +} + +// AsReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsReplicaInfo() (*ReplicaInfo, bool) { + return nil, false +} + +// AsBasicReplicaInfo is the BasicReplicaInfo implementation for StatelessServiceInstanceInfo. +func (ssii StatelessServiceInstanceInfo) AsBasicReplicaInfo() (BasicReplicaInfo, bool) { + return &ssii, true +} + +// StatelessServicePartitionInfo information about a partition of a stateless Service Fabric service. +type StatelessServicePartitionInfo struct { + // InstanceCount - Number of instances of this partition. + InstanceCount *int64 `json:"InstanceCount,omitempty"` + // HealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + HealthState HealthState `json:"HealthState,omitempty"` + // PartitionStatus - The status of the service fabric service partition. Possible values include: 'ServicePartitionStatusInvalid', 'ServicePartitionStatusReady', 'ServicePartitionStatusNotReady', 'ServicePartitionStatusInQuorumLoss', 'ServicePartitionStatusReconfiguring', 'ServicePartitionStatusDeleting' + PartitionStatus ServicePartitionStatus `json:"PartitionStatus,omitempty"` + // PartitionInformation - Information about the partition identity, partitioning scheme and keys supported by it. + PartitionInformation BasicPartitionInformation `json:"PartitionInformation,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServicePartitionInfoServiceKindServicePartitionInfo', 'ServiceKindBasicServicePartitionInfoServiceKindStateful', 'ServiceKindBasicServicePartitionInfoServiceKindStateless' + ServiceKind ServiceKindBasicServicePartitionInfo `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) MarshalJSON() ([]byte, error) { + sspi.ServiceKind = ServiceKindBasicServicePartitionInfoServiceKindStateless + objectMap := make(map[string]interface{}) + if sspi.InstanceCount != nil { + objectMap["InstanceCount"] = sspi.InstanceCount + } + if sspi.HealthState != "" { + objectMap["HealthState"] = sspi.HealthState + } + if sspi.PartitionStatus != "" { + objectMap["PartitionStatus"] = sspi.PartitionStatus + } + objectMap["PartitionInformation"] = sspi.PartitionInformation + if sspi.ServiceKind != "" { + objectMap["ServiceKind"] = sspi.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsStatefulServicePartitionInfo() (*StatefulServicePartitionInfo, bool) { + return nil, false +} + +// AsStatelessServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsStatelessServicePartitionInfo() (*StatelessServicePartitionInfo, bool) { + return &sspi, true +} + +// AsServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsServicePartitionInfo() (*ServicePartitionInfo, bool) { + return nil, false +} + +// AsBasicServicePartitionInfo is the BasicServicePartitionInfo implementation for StatelessServicePartitionInfo. +func (sspi StatelessServicePartitionInfo) AsBasicServicePartitionInfo() (BasicServicePartitionInfo, bool) { + return &sspi, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServicePartitionInfo struct. +func (sspi *StatelessServicePartitionInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int64 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + sspi.InstanceCount = &instanceCount + } + case "HealthState": + if v != nil { + var healthState HealthState + err = json.Unmarshal(*v, &healthState) + if err != nil { + return err + } + sspi.HealthState = healthState + } + case "PartitionStatus": + if v != nil { + var partitionStatus ServicePartitionStatus + err = json.Unmarshal(*v, &partitionStatus) + if err != nil { + return err + } + sspi.PartitionStatus = partitionStatus + } + case "PartitionInformation": + if v != nil { + partitionInformation, err := unmarshalBasicPartitionInformation(*v) + if err != nil { + return err + } + sspi.PartitionInformation = partitionInformation + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServicePartitionInfo + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + sspi.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StatelessServiceTypeDescription describes a stateless service type defined in the service manifest of a +// provisioned application type. +type StatelessServiceTypeDescription struct { + // UseImplicitHost - A flag indicating if this type is not implemented and hosted by a user service process, but is implicitly hosted by a system created process. This value is true for services using the guest executable services, false otherwise. + UseImplicitHost *bool `json:"UseImplicitHost,omitempty"` + // IsStateful - Indicates whether the service type is a stateful service type or a stateless service type. This property is true if the service type is a stateful service type, false otherwise. + IsStateful *bool `json:"IsStateful,omitempty"` + // ServiceTypeName - Name of the service type as specified in the service manifest. + ServiceTypeName *string `json:"ServiceTypeName,omitempty"` + // PlacementConstraints - The placement constraint to be used when instantiating this service in a Service Fabric cluster. + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // LoadMetrics - The service load metrics is given as an array of ServiceLoadMetricDescription objects. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - List of service placement policy descriptions. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // Extensions - List of service type extensions. + Extensions *[]ServiceTypeExtensionDescription `json:"Extensions,omitempty"` + // Kind - Possible values include: 'KindServiceTypeDescription', 'KindStateful', 'KindStateless' + Kind KindBasicServiceTypeDescription `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) MarshalJSON() ([]byte, error) { + sstd.Kind = KindStateless + objectMap := make(map[string]interface{}) + if sstd.UseImplicitHost != nil { + objectMap["UseImplicitHost"] = sstd.UseImplicitHost + } + if sstd.IsStateful != nil { + objectMap["IsStateful"] = sstd.IsStateful + } + if sstd.ServiceTypeName != nil { + objectMap["ServiceTypeName"] = sstd.ServiceTypeName + } + if sstd.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = sstd.PlacementConstraints + } + if sstd.LoadMetrics != nil { + objectMap["LoadMetrics"] = sstd.LoadMetrics + } + if sstd.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = sstd.ServicePlacementPolicies + } + if sstd.Extensions != nil { + objectMap["Extensions"] = sstd.Extensions + } + if sstd.Kind != "" { + objectMap["Kind"] = sstd.Kind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsStatefulServiceTypeDescription() (*StatefulServiceTypeDescription, bool) { + return nil, false +} + +// AsStatelessServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsStatelessServiceTypeDescription() (*StatelessServiceTypeDescription, bool) { + return &sstd, true +} + +// AsServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsServiceTypeDescription() (*ServiceTypeDescription, bool) { + return nil, false +} + +// AsBasicServiceTypeDescription is the BasicServiceTypeDescription implementation for StatelessServiceTypeDescription. +func (sstd StatelessServiceTypeDescription) AsBasicServiceTypeDescription() (BasicServiceTypeDescription, bool) { + return &sstd, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceTypeDescription struct. +func (sstd *StatelessServiceTypeDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "UseImplicitHost": + if v != nil { + var useImplicitHost bool + err = json.Unmarshal(*v, &useImplicitHost) + if err != nil { + return err + } + sstd.UseImplicitHost = &useImplicitHost + } + case "IsStateful": + if v != nil { + var isStateful bool + err = json.Unmarshal(*v, &isStateful) + if err != nil { + return err + } + sstd.IsStateful = &isStateful + } + case "ServiceTypeName": + if v != nil { + var serviceTypeName string + err = json.Unmarshal(*v, &serviceTypeName) + if err != nil { + return err + } + sstd.ServiceTypeName = &serviceTypeName + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + sstd.PlacementConstraints = &placementConstraints + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + sstd.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + sstd.ServicePlacementPolicies = &servicePlacementPolicies + } + case "Extensions": + if v != nil { + var extensions []ServiceTypeExtensionDescription + err = json.Unmarshal(*v, &extensions) + if err != nil { + return err + } + sstd.Extensions = &extensions + } + case "Kind": + if v != nil { + var kind KindBasicServiceTypeDescription + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + sstd.Kind = kind + } + } + } + + return nil +} + +// StatelessServiceUpdateDescription describes an update for a stateless service. +type StatelessServiceUpdateDescription struct { + // InstanceCount - The instance count. + InstanceCount *int32 `json:"InstanceCount,omitempty"` + // Flags - Flags indicating whether other properties are set. Each of the associated properties corresponds to a flag, specified below, which, if set, indicate that the property is specified. + // This property can be a combination of those flags obtained using bitwise 'OR' operator. + // For example, if the provided value is 6 then the flags for ReplicaRestartWaitDuration (2) and QuorumLossWaitDuration (4) are set. + // - None - Does not indicate any other properties are set. The value is zero. + // - TargetReplicaSetSize/InstanceCount - Indicates whether the TargetReplicaSetSize property (for Stateful services) or the InstanceCount property (for Stateless services) is set. The value is 1. + // - ReplicaRestartWaitDuration - Indicates the ReplicaRestartWaitDuration property is set. The value is 2. + // - QuorumLossWaitDuration - Indicates the QuorumLossWaitDuration property is set. The value is 4. + // - StandByReplicaKeepDuration - Indicates the StandByReplicaKeepDuration property is set. The value is 8. + // - MinReplicaSetSize - Indicates the MinReplicaSetSize property is set. The value is 16. + // - PlacementConstraints - Indicates the PlacementConstraints property is set. The value is 32. + // - PlacementPolicyList - Indicates the ServicePlacementPolicies property is set. The value is 64. + // - Correlation - Indicates the CorrelationScheme property is set. The value is 128. + // - Metrics - Indicates the ServiceLoadMetrics property is set. The value is 256. + // - DefaultMoveCost - Indicates the DefaultMoveCost property is set. The value is 512. + // - ScalingPolicy - Indicates the ScalingPolicies property is set. The value is 1024. + Flags *string `json:"Flags,omitempty"` + // PlacementConstraints - The placement constraints as a string. Placement constraints are boolean expressions on node properties and allow for restricting a service to particular nodes based on the service requirements. For example, to place a service on nodes where NodeType is blue specify the following: "NodeColor == blue)". + PlacementConstraints *string `json:"PlacementConstraints,omitempty"` + // CorrelationScheme - The correlation scheme. + CorrelationScheme *[]ServiceCorrelationDescription `json:"CorrelationScheme,omitempty"` + // LoadMetrics - The service load metrics. + LoadMetrics *[]ServiceLoadMetricDescription `json:"LoadMetrics,omitempty"` + // ServicePlacementPolicies - The service placement policies. + ServicePlacementPolicies *[]BasicServicePlacementPolicyDescription `json:"ServicePlacementPolicies,omitempty"` + // DefaultMoveCost - The move cost for the service. Possible values include: 'Zero', 'Low', 'Medium', 'High' + DefaultMoveCost MoveCost `json:"DefaultMoveCost,omitempty"` + // ScalingPolicies - Scaling policies for this service. + ScalingPolicies *[]ScalingPolicyDescription `json:"ScalingPolicies,omitempty"` + // ServiceKind - Possible values include: 'ServiceKindBasicServiceUpdateDescriptionServiceKindServiceUpdateDescription', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateful', 'ServiceKindBasicServiceUpdateDescriptionServiceKindStateless' + ServiceKind ServiceKindBasicServiceUpdateDescription `json:"ServiceKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) MarshalJSON() ([]byte, error) { + ssud.ServiceKind = ServiceKindBasicServiceUpdateDescriptionServiceKindStateless + objectMap := make(map[string]interface{}) + if ssud.InstanceCount != nil { + objectMap["InstanceCount"] = ssud.InstanceCount + } + if ssud.Flags != nil { + objectMap["Flags"] = ssud.Flags + } + if ssud.PlacementConstraints != nil { + objectMap["PlacementConstraints"] = ssud.PlacementConstraints + } + if ssud.CorrelationScheme != nil { + objectMap["CorrelationScheme"] = ssud.CorrelationScheme + } + if ssud.LoadMetrics != nil { + objectMap["LoadMetrics"] = ssud.LoadMetrics + } + if ssud.ServicePlacementPolicies != nil { + objectMap["ServicePlacementPolicies"] = ssud.ServicePlacementPolicies + } + if ssud.DefaultMoveCost != "" { + objectMap["DefaultMoveCost"] = ssud.DefaultMoveCost + } + if ssud.ScalingPolicies != nil { + objectMap["ScalingPolicies"] = ssud.ScalingPolicies + } + if ssud.ServiceKind != "" { + objectMap["ServiceKind"] = ssud.ServiceKind + } + return json.Marshal(objectMap) +} + +// AsStatefulServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsStatefulServiceUpdateDescription() (*StatefulServiceUpdateDescription, bool) { + return nil, false +} + +// AsStatelessServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsStatelessServiceUpdateDescription() (*StatelessServiceUpdateDescription, bool) { + return &ssud, true +} + +// AsServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsServiceUpdateDescription() (*ServiceUpdateDescription, bool) { + return nil, false +} + +// AsBasicServiceUpdateDescription is the BasicServiceUpdateDescription implementation for StatelessServiceUpdateDescription. +func (ssud StatelessServiceUpdateDescription) AsBasicServiceUpdateDescription() (BasicServiceUpdateDescription, bool) { + return &ssud, true +} + +// UnmarshalJSON is the custom unmarshaler for StatelessServiceUpdateDescription struct. +func (ssud *StatelessServiceUpdateDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "InstanceCount": + if v != nil { + var instanceCount int32 + err = json.Unmarshal(*v, &instanceCount) + if err != nil { + return err + } + ssud.InstanceCount = &instanceCount + } + case "Flags": + if v != nil { + var flags string + err = json.Unmarshal(*v, &flags) + if err != nil { + return err + } + ssud.Flags = &flags + } + case "PlacementConstraints": + if v != nil { + var placementConstraints string + err = json.Unmarshal(*v, &placementConstraints) + if err != nil { + return err + } + ssud.PlacementConstraints = &placementConstraints + } + case "CorrelationScheme": + if v != nil { + var correlationScheme []ServiceCorrelationDescription + err = json.Unmarshal(*v, &correlationScheme) + if err != nil { + return err + } + ssud.CorrelationScheme = &correlationScheme + } + case "LoadMetrics": + if v != nil { + var loadMetrics []ServiceLoadMetricDescription + err = json.Unmarshal(*v, &loadMetrics) + if err != nil { + return err + } + ssud.LoadMetrics = &loadMetrics + } + case "ServicePlacementPolicies": + if v != nil { + servicePlacementPolicies, err := unmarshalBasicServicePlacementPolicyDescriptionArray(*v) + if err != nil { + return err + } + ssud.ServicePlacementPolicies = &servicePlacementPolicies + } + case "DefaultMoveCost": + if v != nil { + var defaultMoveCost MoveCost + err = json.Unmarshal(*v, &defaultMoveCost) + if err != nil { + return err + } + ssud.DefaultMoveCost = defaultMoveCost + } + case "ScalingPolicies": + if v != nil { + var scalingPolicies []ScalingPolicyDescription + err = json.Unmarshal(*v, &scalingPolicies) + if err != nil { + return err + } + ssud.ScalingPolicies = &scalingPolicies + } + case "ServiceKind": + if v != nil { + var serviceKind ServiceKindBasicServiceUpdateDescription + err = json.Unmarshal(*v, &serviceKind) + if err != nil { + return err + } + ssud.ServiceKind = serviceKind + } + } + } + + return nil +} + +// StoppedChaosEvent describes a Chaos event that gets generated when Chaos stops because either the user +// issued a stop or the time to run was up. +type StoppedChaosEvent struct { + // Reason - Describes why Chaos stopped. Chaos can stop because of StopChaos API call or the timeToRun provided in ChaosParameters is over. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StoppedChaosEvent. +func (sce StoppedChaosEvent) MarshalJSON() ([]byte, error) { + sce.Kind = KindStopped + objectMap := make(map[string]interface{}) + if sce.Reason != nil { + objectMap["Reason"] = sce.Reason + } + if sce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = sce.TimeStampUtc + } + if sce.Kind != "" { + objectMap["Kind"] = sce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return &sce, true +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for StoppedChaosEvent. +func (sce StoppedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &sce, true +} + +// String ... +type String struct { + autorest.Response `json:"-"` + Value *string `json:"value,omitempty"` +} + +// StringPropertyValue describes a Service Fabric property value of type String. +type StringPropertyValue struct { + // Data - The data of the property value. + Data *string `json:"Data,omitempty"` + // Kind - Possible values include: 'KindPropertyValue', 'KindBinary', 'KindInt64', 'KindDouble', 'KindString', 'KindGUID' + Kind KindBasicPropertyValue `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for StringPropertyValue. +func (spv StringPropertyValue) MarshalJSON() ([]byte, error) { + spv.Kind = KindString + objectMap := make(map[string]interface{}) + if spv.Data != nil { + objectMap["Data"] = spv.Data + } + if spv.Kind != "" { + objectMap["Kind"] = spv.Kind + } + return json.Marshal(objectMap) +} + +// AsBinaryPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsBinaryPropertyValue() (*BinaryPropertyValue, bool) { + return nil, false +} + +// AsInt64PropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsInt64PropertyValue() (*Int64PropertyValue, bool) { + return nil, false +} + +// AsDoublePropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsDoublePropertyValue() (*DoublePropertyValue, bool) { + return nil, false +} + +// AsStringPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsStringPropertyValue() (*StringPropertyValue, bool) { + return &spv, true +} + +// AsGUIDPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsGUIDPropertyValue() (*GUIDPropertyValue, bool) { + return nil, false +} + +// AsPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsPropertyValue() (*PropertyValue, bool) { + return nil, false +} + +// AsBasicPropertyValue is the BasicPropertyValue implementation for StringPropertyValue. +func (spv StringPropertyValue) AsBasicPropertyValue() (BasicPropertyValue, bool) { + return &spv, true +} + +// SuccessfulPropertyBatchInfo derived from PropertyBatchInfo. Represents the property batch succeeding. +// Contains the results of any "Get" operations in the batch. +type SuccessfulPropertyBatchInfo struct { + // Properties - A map containing the properties that were requested through any "Get" property batch operations. The key represents the index of the "Get" operation in the original request, in string form. The value is the property. If a property is not found, it will not be in the map. + Properties map[string]*PropertyInfo `json:"Properties"` + // Kind - Possible values include: 'KindPropertyBatchInfo', 'KindSuccessful', 'KindFailed' + Kind KindBasicPropertyBatchInfo `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) MarshalJSON() ([]byte, error) { + spbi.Kind = KindSuccessful + objectMap := make(map[string]interface{}) + if spbi.Properties != nil { + objectMap["Properties"] = spbi.Properties + } + if spbi.Kind != "" { + objectMap["Kind"] = spbi.Kind + } + return json.Marshal(objectMap) +} + +// AsSuccessfulPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsSuccessfulPropertyBatchInfo() (*SuccessfulPropertyBatchInfo, bool) { + return &spbi, true +} + +// AsFailedPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsFailedPropertyBatchInfo() (*FailedPropertyBatchInfo, bool) { + return nil, false +} + +// AsPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsPropertyBatchInfo() (*PropertyBatchInfo, bool) { + return nil, false +} + +// AsBasicPropertyBatchInfo is the BasicPropertyBatchInfo implementation for SuccessfulPropertyBatchInfo. +func (spbi SuccessfulPropertyBatchInfo) AsBasicPropertyBatchInfo() (BasicPropertyBatchInfo, bool) { + return &spbi, true +} + +// SystemApplicationHealthEvaluation represents health evaluation for the fabric:/System application, +// containing information about the data and the algorithm used by health store to evaluate health. The +// evaluation is returned only when the aggregated health state of the cluster is either Error or Warning. +type SystemApplicationHealthEvaluation struct { + // UnhealthyEvaluations - List of unhealthy evaluations that led to the current aggregated health state of the system application. The types of the unhealthy evaluations can be DeployedApplicationsHealthEvaluation, ServicesHealthEvaluation or EventHealthEvaluation. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) MarshalJSON() ([]byte, error) { + sahe.Kind = KindSystemApplication + objectMap := make(map[string]interface{}) + if sahe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = sahe.UnhealthyEvaluations + } + if sahe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = sahe.AggregatedHealthState + } + if sahe.Description != nil { + objectMap["Description"] = sahe.Description + } + if sahe.Kind != "" { + objectMap["Kind"] = sahe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return &sahe, true +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for SystemApplicationHealthEvaluation. +func (sahe SystemApplicationHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &sahe, true +} + +// TCPConfig describes the tcp configuration for external connectivity for this network. +type TCPConfig struct { + // Name - tcp gateway config name. + Name *string `json:"name,omitempty"` + // Port - Specifies the port at which the service endpoint below needs to be exposed. + Port *int32 `json:"port,omitempty"` + // Destination - Describes destination endpoint for routing traffic. + Destination *GatewayDestination `json:"destination,omitempty"` +} + +// TestErrorChaosEvent describes a Chaos event that gets generated when an unexpected event occurs in the +// Chaos engine. +// For example, due to the cluster snapshot being inconsistent, while faulting an entity, Chaos found that +// the entity was already faulted -- which would be an unexpected event. +type TestErrorChaosEvent struct { + // Reason - Describes why TestErrorChaosEvent was generated. For example, Chaos tries to fault a partition but finds that the partition is no longer fault tolerant, then a TestErrorEvent gets generated with the reason stating that the partition is not fault tolerant. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) MarshalJSON() ([]byte, error) { + tece.Kind = KindTestError + objectMap := make(map[string]interface{}) + if tece.Reason != nil { + objectMap["Reason"] = tece.Reason + } + if tece.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = tece.TimeStampUtc + } + if tece.Kind != "" { + objectMap["Kind"] = tece.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return &tece, true +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for TestErrorChaosEvent. +func (tece TestErrorChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &tece, true +} + +// TimeBasedBackupScheduleDescription describes the time based backup schedule. +type TimeBasedBackupScheduleDescription struct { + // ScheduleFrequencyType - Describes the frequency with which to run the time based backup schedule. Possible values include: 'BackupScheduleFrequencyTypeInvalid', 'BackupScheduleFrequencyTypeDaily', 'BackupScheduleFrequencyTypeWeekly' + ScheduleFrequencyType BackupScheduleFrequencyType `json:"ScheduleFrequencyType,omitempty"` + // RunDays - List of days of a week when to trigger the periodic backup. This is valid only when the backup schedule frequency type is weekly. + RunDays *[]DayOfWeek `json:"RunDays,omitempty"` + // RunTimes - Represents the list of exact time during the day in ISO8601 format. Like '19:00:00' will represent '7PM' during the day. Date specified along with time will be ignored. + RunTimes *[]date.Time `json:"RunTimes,omitempty"` + // ScheduleKind - Possible values include: 'ScheduleKindBackupScheduleDescription', 'ScheduleKindFrequencyBased', 'ScheduleKindTimeBased' + ScheduleKind ScheduleKind `json:"ScheduleKind,omitempty"` +} + +// MarshalJSON is the custom marshaler for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) MarshalJSON() ([]byte, error) { + tbbsd.ScheduleKind = ScheduleKindTimeBased + objectMap := make(map[string]interface{}) + if tbbsd.ScheduleFrequencyType != "" { + objectMap["ScheduleFrequencyType"] = tbbsd.ScheduleFrequencyType + } + if tbbsd.RunDays != nil { + objectMap["RunDays"] = tbbsd.RunDays + } + if tbbsd.RunTimes != nil { + objectMap["RunTimes"] = tbbsd.RunTimes + } + if tbbsd.ScheduleKind != "" { + objectMap["ScheduleKind"] = tbbsd.ScheduleKind + } + return json.Marshal(objectMap) +} + +// AsFrequencyBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsFrequencyBasedBackupScheduleDescription() (*FrequencyBasedBackupScheduleDescription, bool) { + return nil, false +} + +// AsTimeBasedBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsTimeBasedBackupScheduleDescription() (*TimeBasedBackupScheduleDescription, bool) { + return &tbbsd, true +} + +// AsBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsBackupScheduleDescription() (*BackupScheduleDescription, bool) { + return nil, false +} + +// AsBasicBackupScheduleDescription is the BasicBackupScheduleDescription implementation for TimeBasedBackupScheduleDescription. +func (tbbsd TimeBasedBackupScheduleDescription) AsBasicBackupScheduleDescription() (BasicBackupScheduleDescription, bool) { + return &tbbsd, true +} + +// TimeOfDay defines an hour and minute of the day specified in 24 hour time. +type TimeOfDay struct { + // Hour - Represents the hour of the day. Value must be between 0 and 23 inclusive. + Hour *int32 `json:"Hour,omitempty"` + // Minute - Represents the minute of the hour. Value must be between 0 to 59 inclusive. + Minute *int32 `json:"Minute,omitempty"` +} + +// TimeRange defines a time range in a 24 hour day specified by a start and end time. +type TimeRange struct { + // StartTime - Defines an hour and minute of the day specified in 24 hour time. + StartTime *TimeOfDay `json:"StartTime,omitempty"` + // EndTime - Defines an hour and minute of the day specified in 24 hour time. + EndTime *TimeOfDay `json:"EndTime,omitempty"` +} + +// UniformInt64RangePartitionSchemeDescription describes a partitioning scheme where an integer range is +// allocated evenly across a number of partitions. +type UniformInt64RangePartitionSchemeDescription struct { + // Count - The number of partitions. + Count *int32 `json:"Count,omitempty"` + // LowKey - String indicating the lower bound of the partition key range that + // should be split between the partitions. + LowKey *string `json:"LowKey,omitempty"` + // HighKey - String indicating the upper bound of the partition key range that + // should be split between the partitions. + HighKey *string `json:"HighKey,omitempty"` + // PartitionScheme - Possible values include: 'PartitionSchemePartitionSchemeDescription', 'PartitionSchemeNamed1', 'PartitionSchemeSingleton1', 'PartitionSchemeUniformInt64Range1' + PartitionScheme PartitionSchemeBasicPartitionSchemeDescription `json:"PartitionScheme,omitempty"` +} + +// MarshalJSON is the custom marshaler for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) MarshalJSON() ([]byte, error) { + ui6rpsd.PartitionScheme = PartitionSchemeUniformInt64Range1 + objectMap := make(map[string]interface{}) + if ui6rpsd.Count != nil { + objectMap["Count"] = ui6rpsd.Count + } + if ui6rpsd.LowKey != nil { + objectMap["LowKey"] = ui6rpsd.LowKey + } + if ui6rpsd.HighKey != nil { + objectMap["HighKey"] = ui6rpsd.HighKey + } + if ui6rpsd.PartitionScheme != "" { + objectMap["PartitionScheme"] = ui6rpsd.PartitionScheme + } + return json.Marshal(objectMap) +} + +// AsNamedPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsNamedPartitionSchemeDescription() (*NamedPartitionSchemeDescription, bool) { + return nil, false +} + +// AsSingletonPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsSingletonPartitionSchemeDescription() (*SingletonPartitionSchemeDescription, bool) { + return nil, false +} + +// AsUniformInt64RangePartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsUniformInt64RangePartitionSchemeDescription() (*UniformInt64RangePartitionSchemeDescription, bool) { + return &ui6rpsd, true +} + +// AsPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsPartitionSchemeDescription() (*PartitionSchemeDescription, bool) { + return nil, false +} + +// AsBasicPartitionSchemeDescription is the BasicPartitionSchemeDescription implementation for UniformInt64RangePartitionSchemeDescription. +func (ui6rpsd UniformInt64RangePartitionSchemeDescription) AsBasicPartitionSchemeDescription() (BasicPartitionSchemeDescription, bool) { + return &ui6rpsd, true +} + +// UnprovisionApplicationTypeDescriptionInfo describes the operation to unregister or unprovision an +// application type and its version that was registered with the Service Fabric. +type UnprovisionApplicationTypeDescriptionInfo struct { + // ApplicationTypeVersion - The version of the application type as defined in the application manifest. + ApplicationTypeVersion *string `json:"ApplicationTypeVersion,omitempty"` + // Async - The flag indicating whether or not unprovision should occur asynchronously. When set to true, the unprovision operation returns when the request is accepted by the system, and the unprovision operation continues without any timeout limit. The default value is false. However, we recommend setting it to true for large application packages that were provisioned. + Async *bool `json:"Async,omitempty"` +} + +// UnprovisionFabricDescription describes the parameters for unprovisioning a cluster. +type UnprovisionFabricDescription struct { + // CodeVersion - The cluster code package version. + CodeVersion *string `json:"CodeVersion,omitempty"` + // ConfigVersion - The cluster manifest version. + ConfigVersion *string `json:"ConfigVersion,omitempty"` +} + +// UpdateClusterUpgradeDescription parameters for updating a cluster upgrade. +type UpdateClusterUpgradeDescription struct { + // UpgradeKind - The type of upgrade out of the following possible values. Possible values include: 'UpgradeTypeInvalid', 'UpgradeTypeRolling', 'UpgradeTypeRollingForceRestart' + UpgradeKind UpgradeType `json:"UpgradeKind,omitempty"` + // UpdateDescription - Describes the parameters for updating a rolling upgrade of application or cluster. + UpdateDescription *RollingUpgradeUpdateDescription `json:"UpdateDescription,omitempty"` + // ClusterHealthPolicy - Defines a health policy used to evaluate the health of the cluster or of a cluster node. + ClusterHealthPolicy *ClusterHealthPolicy `json:"ClusterHealthPolicy,omitempty"` + // EnableDeltaHealthEvaluation - When true, enables delta health evaluation rather than absolute health evaluation after completion of each upgrade domain. + EnableDeltaHealthEvaluation *bool `json:"EnableDeltaHealthEvaluation,omitempty"` + // ClusterUpgradeHealthPolicy - Defines a health policy used to evaluate the health of the cluster during a cluster upgrade. + ClusterUpgradeHealthPolicy *ClusterUpgradeHealthPolicyObject `json:"ClusterUpgradeHealthPolicy,omitempty"` + // ApplicationHealthPolicyMap - Defines the application health policy map used to evaluate the health of an application or one of its children entities. + ApplicationHealthPolicyMap *ApplicationHealthPolicies `json:"ApplicationHealthPolicyMap,omitempty"` +} + +// UpgradeDomainDeltaNodesCheckHealthEvaluation represents health evaluation for delta unhealthy cluster +// nodes in an upgrade domain, containing health evaluations for each unhealthy node that impacted current +// aggregated health state. +// Can be returned during cluster upgrade when cluster aggregated health state is Warning or Error. +type UpgradeDomainDeltaNodesCheckHealthEvaluation struct { + // UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` + // BaselineErrorCount - Number of upgrade domain nodes with aggregated heath state Error in the health store at the beginning of the cluster upgrade. + BaselineErrorCount *int64 `json:"BaselineErrorCount,omitempty"` + // BaselineTotalCount - Total number of upgrade domain nodes in the health store at the beginning of the cluster upgrade. + BaselineTotalCount *int64 `json:"BaselineTotalCount,omitempty"` + // MaxPercentDeltaUnhealthyNodes - Maximum allowed percentage of upgrade domain delta unhealthy nodes from the ClusterUpgradeHealthPolicy. + MaxPercentDeltaUnhealthyNodes *int32 `json:"MaxPercentDeltaUnhealthyNodes,omitempty"` + // TotalCount - Total number of upgrade domain nodes in the health store. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) MarshalJSON() ([]byte, error) { + uddnche.Kind = KindUpgradeDomainDeltaNodesCheck + objectMap := make(map[string]interface{}) + if uddnche.UpgradeDomainName != nil { + objectMap["UpgradeDomainName"] = uddnche.UpgradeDomainName + } + if uddnche.BaselineErrorCount != nil { + objectMap["BaselineErrorCount"] = uddnche.BaselineErrorCount + } + if uddnche.BaselineTotalCount != nil { + objectMap["BaselineTotalCount"] = uddnche.BaselineTotalCount + } + if uddnche.MaxPercentDeltaUnhealthyNodes != nil { + objectMap["MaxPercentDeltaUnhealthyNodes"] = uddnche.MaxPercentDeltaUnhealthyNodes + } + if uddnche.TotalCount != nil { + objectMap["TotalCount"] = uddnche.TotalCount + } + if uddnche.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = uddnche.UnhealthyEvaluations + } + if uddnche.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = uddnche.AggregatedHealthState + } + if uddnche.Description != nil { + objectMap["Description"] = uddnche.Description + } + if uddnche.Kind != "" { + objectMap["Kind"] = uddnche.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return &uddnche, true +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return nil, false +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainDeltaNodesCheckHealthEvaluation. +func (uddnche UpgradeDomainDeltaNodesCheckHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &uddnche, true +} + +// UpgradeDomainInfo information about an upgrade domain. +type UpgradeDomainInfo struct { + // Name - The name of the upgrade domain + Name *string `json:"Name,omitempty"` + // State - The state of the upgrade domain. Possible values include: 'UpgradeDomainStateInvalid', 'UpgradeDomainStatePending', 'UpgradeDomainStateInProgress', 'UpgradeDomainStateCompleted' + State UpgradeDomainState `json:"State,omitempty"` +} + +// UpgradeDomainNodesHealthEvaluation represents health evaluation for cluster nodes in an upgrade domain, +// containing health evaluations for each unhealthy node that impacted current aggregated health state. Can +// be returned when evaluating cluster health during cluster upgrade and the aggregated health state is +// either Error or Warning. +type UpgradeDomainNodesHealthEvaluation struct { + // UpgradeDomainName - Name of the upgrade domain where nodes health is currently evaluated. + UpgradeDomainName *string `json:"UpgradeDomainName,omitempty"` + // MaxPercentUnhealthyNodes - Maximum allowed percentage of unhealthy nodes from the ClusterHealthPolicy. + MaxPercentUnhealthyNodes *int32 `json:"MaxPercentUnhealthyNodes,omitempty"` + // TotalCount - Total number of nodes in the current upgrade domain. + TotalCount *int64 `json:"TotalCount,omitempty"` + // UnhealthyEvaluations - List of unhealthy evaluations that led to the aggregated health state. Includes all the unhealthy NodeHealthEvaluation that impacted the aggregated health. + UnhealthyEvaluations *[]HealthEvaluationWrapper `json:"UnhealthyEvaluations,omitempty"` + // AggregatedHealthState - The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc. Possible values include: 'HealthStateInvalid', 'HealthStateOk', 'HealthStateWarning', 'HealthStateError', 'HealthStateUnknown' + AggregatedHealthState HealthState `json:"AggregatedHealthState,omitempty"` + // Description - Description of the health evaluation, which represents a summary of the evaluation process. + Description *string `json:"Description,omitempty"` + // Kind - Possible values include: 'KindHealthEvaluation', 'KindApplication', 'KindApplications', 'KindApplicationTypeApplications', 'KindDeltaNodesCheck', 'KindDeployedApplication', 'KindDeployedApplications', 'KindDeployedServicePackage', 'KindDeployedServicePackages', 'KindEvent', 'KindNode', 'KindNodes', 'KindPartition', 'KindPartitions', 'KindReplica', 'KindReplicas', 'KindService', 'KindServices', 'KindSystemApplication', 'KindUpgradeDomainDeltaNodesCheck', 'KindUpgradeDomainNodes' + Kind Kind `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) MarshalJSON() ([]byte, error) { + udnhe.Kind = KindUpgradeDomainNodes + objectMap := make(map[string]interface{}) + if udnhe.UpgradeDomainName != nil { + objectMap["UpgradeDomainName"] = udnhe.UpgradeDomainName + } + if udnhe.MaxPercentUnhealthyNodes != nil { + objectMap["MaxPercentUnhealthyNodes"] = udnhe.MaxPercentUnhealthyNodes + } + if udnhe.TotalCount != nil { + objectMap["TotalCount"] = udnhe.TotalCount + } + if udnhe.UnhealthyEvaluations != nil { + objectMap["UnhealthyEvaluations"] = udnhe.UnhealthyEvaluations + } + if udnhe.AggregatedHealthState != "" { + objectMap["AggregatedHealthState"] = udnhe.AggregatedHealthState + } + if udnhe.Description != nil { + objectMap["Description"] = udnhe.Description + } + if udnhe.Kind != "" { + objectMap["Kind"] = udnhe.Kind + } + return json.Marshal(objectMap) +} + +// AsApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationHealthEvaluation() (*ApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationsHealthEvaluation() (*ApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsApplicationTypeApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsApplicationTypeApplicationsHealthEvaluation() (*ApplicationTypeApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeltaNodesCheckHealthEvaluation() (*DeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationHealthEvaluation() (*DeployedApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedApplicationsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedApplicationsHealthEvaluation() (*DeployedApplicationsHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackageHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackageHealthEvaluation() (*DeployedServicePackageHealthEvaluation, bool) { + return nil, false +} + +// AsDeployedServicePackagesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsDeployedServicePackagesHealthEvaluation() (*DeployedServicePackagesHealthEvaluation, bool) { + return nil, false +} + +// AsEventHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsEventHealthEvaluation() (*EventHealthEvaluation, bool) { + return nil, false +} + +// AsNodeHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodeHealthEvaluation() (*NodeHealthEvaluation, bool) { + return nil, false +} + +// AsNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsNodesHealthEvaluation() (*NodesHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionHealthEvaluation() (*PartitionHealthEvaluation, bool) { + return nil, false +} + +// AsPartitionsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsPartitionsHealthEvaluation() (*PartitionsHealthEvaluation, bool) { + return nil, false +} + +// AsReplicaHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicaHealthEvaluation() (*ReplicaHealthEvaluation, bool) { + return nil, false +} + +// AsReplicasHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsReplicasHealthEvaluation() (*ReplicasHealthEvaluation, bool) { + return nil, false +} + +// AsServiceHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsServiceHealthEvaluation() (*ServiceHealthEvaluation, bool) { + return nil, false +} + +// AsServicesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsServicesHealthEvaluation() (*ServicesHealthEvaluation, bool) { + return nil, false +} + +// AsSystemApplicationHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsSystemApplicationHealthEvaluation() (*SystemApplicationHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainDeltaNodesCheckHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainDeltaNodesCheckHealthEvaluation() (*UpgradeDomainDeltaNodesCheckHealthEvaluation, bool) { + return nil, false +} + +// AsUpgradeDomainNodesHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsUpgradeDomainNodesHealthEvaluation() (*UpgradeDomainNodesHealthEvaluation, bool) { + return &udnhe, true +} + +// AsHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsHealthEvaluation() (*HealthEvaluation, bool) { + return nil, false +} + +// AsBasicHealthEvaluation is the BasicHealthEvaluation implementation for UpgradeDomainNodesHealthEvaluation. +func (udnhe UpgradeDomainNodesHealthEvaluation) AsBasicHealthEvaluation() (BasicHealthEvaluation, bool) { + return &udnhe, true +} + +// UpgradeOrchestrationServiceState service state of Service Fabric Upgrade Orchestration Service. +type UpgradeOrchestrationServiceState struct { + autorest.Response `json:"-"` + // ServiceState - The state of Service Fabric Upgrade Orchestration Service. + ServiceState *string `json:"ServiceState,omitempty"` +} + +// UpgradeOrchestrationServiceStateSummary service state summary of Service Fabric Upgrade Orchestration +// Service. +type UpgradeOrchestrationServiceStateSummary struct { + autorest.Response `json:"-"` + // CurrentCodeVersion - The current code version of the cluster. + CurrentCodeVersion *string `json:"CurrentCodeVersion,omitempty"` + // CurrentManifestVersion - The current manifest version of the cluster. + CurrentManifestVersion *string `json:"CurrentManifestVersion,omitempty"` + // TargetCodeVersion - The target code version of the cluster. + TargetCodeVersion *string `json:"TargetCodeVersion,omitempty"` + // TargetManifestVersion - The target manifest version of the cluster. + TargetManifestVersion *string `json:"TargetManifestVersion,omitempty"` + // PendingUpgradeType - The type of the pending upgrade of the cluster. + PendingUpgradeType *string `json:"PendingUpgradeType,omitempty"` +} + +// UploadChunkRange information about which portion of the file to upload. +type UploadChunkRange struct { + // StartPosition - The start position of the portion of the file. It's represented by the number of bytes. + StartPosition *string `json:"StartPosition,omitempty"` + // EndPosition - The end position of the portion of the file. It's represented by the number of bytes. + EndPosition *string `json:"EndPosition,omitempty"` +} + +// UploadSession information about a image store upload session +type UploadSession struct { + autorest.Response `json:"-"` + // UploadSessions - When querying upload session by upload session ID, the result contains only one upload session. When querying upload session by image store relative path, the result might contain multiple upload sessions. + UploadSessions *[]UploadSessionInfo `json:"UploadSessions,omitempty"` +} + +// UploadSessionInfo information about an image store upload session. A session is associated with a +// relative path in the image store. +type UploadSessionInfo struct { + // StoreRelativePath - The remote location within image store. This path is relative to the image store root. + StoreRelativePath *string `json:"StoreRelativePath,omitempty"` + // SessionID - A unique ID of the upload session. A session ID can be reused only if the session was committed or removed. + SessionID *uuid.UUID `json:"SessionId,omitempty"` + // ModifiedDate - The date and time when the upload session was last modified. + ModifiedDate *date.Time `json:"ModifiedDate,omitempty"` + // FileSize - The size in bytes of the uploading file. + FileSize *string `json:"FileSize,omitempty"` + // ExpectedRanges - List of chunk ranges that image store has not received yet. + ExpectedRanges *[]UploadChunkRange `json:"ExpectedRanges,omitempty"` +} + +// ValidationFailedChaosEvent chaos event corresponding to a failure during validation. +type ValidationFailedChaosEvent struct { + // Reason - Describes why the ValidationFailedChaosEvent was generated. This may happen because more than MaxPercentUnhealthyNodes are unhealthy for more than MaxClusterStabilizationTimeout. This reason will be in the Reason property of the ValidationFailedChaosEvent as a string. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) MarshalJSON() ([]byte, error) { + vfce.Kind = KindValidationFailed + objectMap := make(map[string]interface{}) + if vfce.Reason != nil { + objectMap["Reason"] = vfce.Reason + } + if vfce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = vfce.TimeStampUtc + } + if vfce.Kind != "" { + objectMap["Kind"] = vfce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return &vfce, true +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return nil, false +} + +// AsChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for ValidationFailedChaosEvent. +func (vfce ValidationFailedChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &vfce, true +} + +// VolumeProperties describes properties of a volume resource. +type VolumeProperties struct { + // Description - User readable description of the volume. + Description *string `json:"description,omitempty"` + // Status - Status of the volume. Possible values include: 'ResourceStatusUnknown', 'ResourceStatusReady', 'ResourceStatusUpgrading', 'ResourceStatusCreating', 'ResourceStatusDeleting', 'ResourceStatusFailed' + Status ResourceStatus `json:"status,omitempty"` + // StatusDetails - Gives additional information about the current status of the volume. + StatusDetails *string `json:"statusDetails,omitempty"` + // Provider - Provider of the volume. + Provider *string `json:"provider,omitempty"` + // AzureFileParameters - This type describes a volume provided by an Azure Files file share. + AzureFileParameters *VolumeProviderParametersAzureFile `json:"azureFileParameters,omitempty"` +} + +// VolumeProviderParametersAzureFile this type describes a volume provided by an Azure Files file share. +type VolumeProviderParametersAzureFile struct { + // AccountName - Name of the Azure storage account for the File Share. + AccountName *string `json:"accountName,omitempty"` + // AccountKey - Access key of the Azure storage account for the File Share. + AccountKey *string `json:"accountKey,omitempty"` + // ShareName - Name of the Azure Files file share that provides storage for the volume. + ShareName *string `json:"shareName,omitempty"` +} + +// VolumeReference describes a reference to a volume resource. +type VolumeReference struct { + // Name - Name of the volume being referenced. + Name *string `json:"name,omitempty"` + // ReadOnly - The flag indicating whether the volume is read only. Default is 'false'. + ReadOnly *bool `json:"readOnly,omitempty"` + // DestinationPath - The path within the container at which the volume should be mounted. Only valid path characters are allowed. + DestinationPath *string `json:"destinationPath,omitempty"` +} + +// VolumeResourceDescription this type describes a volume resource. +type VolumeResourceDescription struct { + autorest.Response `json:"-"` + // Name - Name of the Volume resource. + Name *string `json:"name,omitempty"` + // VolumeProperties - Describes properties of a volume resource. + *VolumeProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for VolumeResourceDescription. +func (vrd VolumeResourceDescription) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if vrd.Name != nil { + objectMap["name"] = vrd.Name + } + if vrd.VolumeProperties != nil { + objectMap["properties"] = vrd.VolumeProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for VolumeResourceDescription struct. +func (vrd *VolumeResourceDescription) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + vrd.Name = &name + } + case "properties": + if v != nil { + var volumeProperties VolumeProperties + err = json.Unmarshal(*v, &volumeProperties) + if err != nil { + return err + } + vrd.VolumeProperties = &volumeProperties + } + } + } + + return nil +} + +// WaitForInbuildReplicaSafetyCheck safety check that waits for the replica build operation to finish. This +// indicates that there is a replica that is going through the copy or is providing data for building +// another replica. Bring the node down will abort this copy operation which are typically expensive +// involving data movements. +type WaitForInbuildReplicaSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) MarshalJSON() ([]byte, error) { + wfirsc.Kind = KindWaitForInbuildReplica + objectMap := make(map[string]interface{}) + if wfirsc.PartitionID != nil { + objectMap["PartitionId"] = wfirsc.PartitionID + } + if wfirsc.Kind != "" { + objectMap["Kind"] = wfirsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfirsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return &wfirsc, true +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForInbuildReplicaSafetyCheck. +func (wfirsc WaitForInbuildReplicaSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfirsc, true +} + +// WaitForPrimaryPlacementSafetyCheck safety check that waits for the primary replica that was moved out of +// the node due to upgrade to be placed back again on that node. +type WaitForPrimaryPlacementSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) MarshalJSON() ([]byte, error) { + wfppsc.Kind = KindWaitForPrimaryPlacement + objectMap := make(map[string]interface{}) + if wfppsc.PartitionID != nil { + objectMap["PartitionId"] = wfppsc.PartitionID + } + if wfppsc.Kind != "" { + objectMap["Kind"] = wfppsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfppsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return &wfppsc, true +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimaryPlacementSafetyCheck. +func (wfppsc WaitForPrimaryPlacementSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfppsc, true +} + +// WaitForPrimarySwapSafetyCheck safety check that waits for the primary replica to be moved out of the +// node before starting an upgrade to ensure the availability of the primary replica for the partition. +type WaitForPrimarySwapSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) MarshalJSON() ([]byte, error) { + wfpssc.Kind = KindWaitForPrimarySwap + objectMap := make(map[string]interface{}) + if wfpssc.PartitionID != nil { + objectMap["PartitionId"] = wfpssc.PartitionID + } + if wfpssc.Kind != "" { + objectMap["Kind"] = wfpssc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfpssc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return &wfpssc, true +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return nil, false +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForPrimarySwapSafetyCheck. +func (wfpssc WaitForPrimarySwapSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfpssc, true +} + +// WaitForReconfigurationSafetyCheck safety check that waits for the current reconfiguration of the +// partition to be completed before starting an upgrade. +type WaitForReconfigurationSafetyCheck struct { + // PartitionID - Id of the partition which is undergoing the safety check. + PartitionID *uuid.UUID `json:"PartitionId,omitempty"` + // Kind - Possible values include: 'KindSafetyCheck', 'KindPartitionSafetyCheck', 'KindEnsureAvailability', 'KindEnsurePartitionQuorum', 'KindEnsureSeedNodeQuorum', 'KindWaitForInbuildReplica', 'KindWaitForPrimaryPlacement', 'KindWaitForPrimarySwap', 'KindWaitForReconfiguration' + Kind KindBasicSafetyCheck `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) MarshalJSON() ([]byte, error) { + wfrsc.Kind = KindWaitForReconfiguration + objectMap := make(map[string]interface{}) + if wfrsc.PartitionID != nil { + objectMap["PartitionId"] = wfrsc.PartitionID + } + if wfrsc.Kind != "" { + objectMap["Kind"] = wfrsc.Kind + } + return json.Marshal(objectMap) +} + +// AsPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsPartitionSafetyCheck() (*PartitionSafetyCheck, bool) { + return nil, false +} + +// AsBasicPartitionSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicPartitionSafetyCheck() (BasicPartitionSafetyCheck, bool) { + return &wfrsc, true +} + +// AsEnsureAvailabilitySafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsureAvailabilitySafetyCheck() (*EnsureAvailabilitySafetyCheck, bool) { + return nil, false +} + +// AsEnsurePartitionQurumSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsEnsurePartitionQurumSafetyCheck() (*EnsurePartitionQurumSafetyCheck, bool) { + return nil, false +} + +// AsSeedNodeSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsSeedNodeSafetyCheck() (*SeedNodeSafetyCheck, bool) { + return nil, false +} + +// AsWaitForInbuildReplicaSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForInbuildReplicaSafetyCheck() (*WaitForInbuildReplicaSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimaryPlacementSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimaryPlacementSafetyCheck() (*WaitForPrimaryPlacementSafetyCheck, bool) { + return nil, false +} + +// AsWaitForPrimarySwapSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForPrimarySwapSafetyCheck() (*WaitForPrimarySwapSafetyCheck, bool) { + return nil, false +} + +// AsWaitForReconfigurationSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsWaitForReconfigurationSafetyCheck() (*WaitForReconfigurationSafetyCheck, bool) { + return &wfrsc, true +} + +// AsSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsSafetyCheck() (*SafetyCheck, bool) { + return nil, false +} + +// AsBasicSafetyCheck is the BasicSafetyCheck implementation for WaitForReconfigurationSafetyCheck. +func (wfrsc WaitForReconfigurationSafetyCheck) AsBasicSafetyCheck() (BasicSafetyCheck, bool) { + return &wfrsc, true +} + +// WaitingChaosEvent describes a Chaos event that gets generated when Chaos is waiting for the cluster to +// become ready for faulting, for example, Chaos may be waiting for the on-going upgrade to finish. +type WaitingChaosEvent struct { + // Reason - Describes why the WaitingChaosEvent was generated, for example, due to a cluster upgrade. + Reason *string `json:"Reason,omitempty"` + // TimeStampUtc - The UTC timestamp when this Chaos event was generated. + TimeStampUtc *date.Time `json:"TimeStampUtc,omitempty"` + // Kind - Possible values include: 'KindChaosEvent', 'KindExecutingFaults', 'KindStarted', 'KindStopped', 'KindTestError', 'KindValidationFailed', 'KindWaiting' + Kind KindBasicChaosEvent `json:"Kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for WaitingChaosEvent. +func (wce WaitingChaosEvent) MarshalJSON() ([]byte, error) { + wce.Kind = KindWaiting + objectMap := make(map[string]interface{}) + if wce.Reason != nil { + objectMap["Reason"] = wce.Reason + } + if wce.TimeStampUtc != nil { + objectMap["TimeStampUtc"] = wce.TimeStampUtc + } + if wce.Kind != "" { + objectMap["Kind"] = wce.Kind + } + return json.Marshal(objectMap) +} + +// AsExecutingFaultsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsExecutingFaultsChaosEvent() (*ExecutingFaultsChaosEvent, bool) { + return nil, false +} + +// AsStartedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsStartedChaosEvent() (*StartedChaosEvent, bool) { + return nil, false +} + +// AsStoppedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsStoppedChaosEvent() (*StoppedChaosEvent, bool) { + return nil, false +} + +// AsTestErrorChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsTestErrorChaosEvent() (*TestErrorChaosEvent, bool) { + return nil, false +} + +// AsValidationFailedChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsValidationFailedChaosEvent() (*ValidationFailedChaosEvent, bool) { + return nil, false +} + +// AsWaitingChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsWaitingChaosEvent() (*WaitingChaosEvent, bool) { + return &wce, true +} + +// AsChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsChaosEvent() (*ChaosEvent, bool) { + return nil, false +} + +// AsBasicChaosEvent is the BasicChaosEvent implementation for WaitingChaosEvent. +func (wce WaitingChaosEvent) AsBasicChaosEvent() (BasicChaosEvent, bool) { + return &wce, true +} diff --git a/services/servicefabric/6.4/servicefabric/servicefabricapi/interfaces.go b/services/servicefabric/6.4/servicefabric/servicefabricapi/interfaces.go new file mode 100644 index 000000000000..7ed8463743a2 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/servicefabricapi/interfaces.go @@ -0,0 +1,313 @@ +package servicefabricapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/services/servicefabric/6.4/servicefabric" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/date" + "github.com/satori/go.uuid" +) + +// BaseClientAPI contains the set of methods on the BaseClient type. +type BaseClientAPI interface { + BackupPartition(ctx context.Context, partitionID uuid.UUID, backupPartitionDescription *servicefabric.BackupPartitionDescription, backupTimeout *int32, timeout *int64) (result autorest.Response, err error) + CancelOperation(ctx context.Context, operationID uuid.UUID, force bool, timeout *int64) (result autorest.Response, err error) + CancelRepairTask(ctx context.Context, repairTaskCancelDescription servicefabric.RepairTaskCancelDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + CommitImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + CopyImageStoreContent(ctx context.Context, imageStoreCopyDescription servicefabric.ImageStoreCopyDescription, timeout *int64) (result autorest.Response, err error) + CreateApplication(ctx context.Context, applicationDescription servicefabric.ApplicationDescription, timeout *int64) (result autorest.Response, err error) + CreateBackupPolicy(ctx context.Context, backupPolicyDescription servicefabric.BackupPolicyDescription, timeout *int64) (result autorest.Response, err error) + CreateComposeDeployment(ctx context.Context, createComposeDeploymentDescription servicefabric.CreateComposeDeploymentDescription, timeout *int64) (result autorest.Response, err error) + CreateName(ctx context.Context, nameDescription servicefabric.NameDescription, timeout *int64) (result autorest.Response, err error) + CreateRepairTask(ctx context.Context, repairTask servicefabric.RepairTask) (result servicefabric.RepairTaskUpdateInfo, err error) + CreateService(ctx context.Context, applicationID string, serviceDescription servicefabric.BasicServiceDescription, timeout *int64) (result autorest.Response, err error) + CreateServiceFromTemplate(ctx context.Context, applicationID string, serviceFromTemplateDescription servicefabric.ServiceFromTemplateDescription, timeout *int64) (result autorest.Response, err error) + DeleteApplication(ctx context.Context, applicationID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + DeleteBackupPolicy(ctx context.Context, backupPolicyName string, timeout *int64) (result autorest.Response, err error) + DeleteImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) + DeleteImageStoreUploadSession(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + DeleteName(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) + DeleteProperty(ctx context.Context, nameID string, propertyName string, timeout *int64) (result autorest.Response, err error) + DeleteRepairTask(ctx context.Context, repairTaskDeleteDescription servicefabric.RepairTaskDeleteDescription) (result autorest.Response, err error) + DeleteService(ctx context.Context, serviceID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + DeployServicePackageToNode(ctx context.Context, nodeName string, deployServicePackageToNodeDescription servicefabric.DeployServicePackageToNodeDescription, timeout *int64) (result autorest.Response, err error) + DisableApplicationBackup(ctx context.Context, applicationID string, timeout *int64, disableBackupDescription *servicefabric.DisableBackupDescription) (result autorest.Response, err error) + DisableNode(ctx context.Context, nodeName string, deactivationIntentDescription servicefabric.DeactivationIntentDescription, timeout *int64) (result autorest.Response, err error) + DisablePartitionBackup(ctx context.Context, partitionID uuid.UUID, disableBackupDescription *servicefabric.DisableBackupDescription, timeout *int64) (result autorest.Response, err error) + DisableServiceBackup(ctx context.Context, serviceID string, disableBackupDescription *servicefabric.DisableBackupDescription, timeout *int64) (result autorest.Response, err error) + EnableApplicationBackup(ctx context.Context, applicationID string, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + EnableNode(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) + EnablePartitionBackup(ctx context.Context, partitionID uuid.UUID, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + EnableServiceBackup(ctx context.Context, serviceID string, enableBackupDescription servicefabric.EnableBackupDescription, timeout *int64) (result autorest.Response, err error) + ForceApproveRepairTask(ctx context.Context, repairTaskApproveDescription servicefabric.RepairTaskApproveDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + GetAadMetadata(ctx context.Context, timeout *int64) (result servicefabric.AadMetadataObject, err error) + GetAllEntitiesBackedUpByPolicy(ctx context.Context, backupPolicyName string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupEntityList, err error) + GetApplicationBackupConfigurationInfo(ctx context.Context, applicationID string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupConfigurationInfoList, err error) + GetApplicationBackupList(ctx context.Context, applicationID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetApplicationEventList(ctx context.Context, applicationID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListApplicationEvent, err error) + GetApplicationHealth(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ApplicationHealth, err error) + GetApplicationHealthUsingPolicy(ctx context.Context, applicationID string, eventsHealthStateFilter *int32, deployedApplicationsHealthStateFilter *int32, servicesHealthStateFilter *int32, excludeHealthStatistics *bool, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.ApplicationHealth, err error) + GetApplicationInfo(ctx context.Context, applicationID string, excludeApplicationParameters *bool, timeout *int64) (result servicefabric.ApplicationInfo, err error) + GetApplicationInfoList(ctx context.Context, applicationDefinitionKindFilter *int32, applicationTypeName string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationInfoList, err error) + GetApplicationLoadInfo(ctx context.Context, applicationID string, timeout *int64) (result servicefabric.ApplicationLoadInfo, err error) + GetApplicationManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result servicefabric.ApplicationTypeManifest, err error) + GetApplicationNameInfo(ctx context.Context, serviceID string, timeout *int64) (result servicefabric.ApplicationNameInfo, err error) + GetApplicationsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListApplicationEvent, err error) + GetApplicationTypeInfoList(ctx context.Context, applicationTypeDefinitionKindFilter *int32, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationTypeInfoList, err error) + GetApplicationTypeInfoListByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, excludeApplicationParameters *bool, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedApplicationTypeInfoList, err error) + GetApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result servicefabric.ApplicationUpgradeProgressInfo, err error) + GetBackupPolicyByName(ctx context.Context, backupPolicyName string, timeout *int64) (result servicefabric.BackupPolicyDescription, err error) + GetBackupPolicyList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupPolicyDescriptionList, err error) + GetBackupsFromBackupLocation(ctx context.Context, getBackupByStorageQueryDescription servicefabric.GetBackupByStorageQueryDescription, timeout *int64, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetChaos(ctx context.Context, timeout *int64) (result servicefabric.Chaos, err error) + GetChaosEvents(ctx context.Context, continuationToken string, startTimeUtc string, endTimeUtc string, maxResults *int64, timeout *int64) (result servicefabric.ChaosEventsSegment, err error) + GetChaosSchedule(ctx context.Context, timeout *int64) (result servicefabric.ChaosScheduleDescription, err error) + GetClusterConfiguration(ctx context.Context, configurationAPIVersion string, timeout *int64) (result servicefabric.ClusterConfiguration, err error) + GetClusterConfigurationUpgradeStatus(ctx context.Context, timeout *int64) (result servicefabric.ClusterConfigurationUpgradeStatusInfo, err error) + GetClusterEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListClusterEvent, err error) + GetClusterHealth(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, timeout *int64) (result servicefabric.ClusterHealth, err error) + GetClusterHealthChunk(ctx context.Context, timeout *int64) (result servicefabric.ClusterHealthChunk, err error) + GetClusterHealthChunkUsingPolicyAndAdvancedFilters(ctx context.Context, clusterHealthChunkQueryDescription *servicefabric.ClusterHealthChunkQueryDescription, timeout *int64) (result servicefabric.ClusterHealthChunk, err error) + GetClusterHealthUsingPolicy(ctx context.Context, nodesHealthStateFilter *int32, applicationsHealthStateFilter *int32, eventsHealthStateFilter *int32, excludeHealthStatistics *bool, includeSystemApplicationHealthStatistics *bool, clusterHealthPolicies *servicefabric.ClusterHealthPolicies, timeout *int64) (result servicefabric.ClusterHealth, err error) + GetClusterManifest(ctx context.Context, timeout *int64) (result servicefabric.ClusterManifest, err error) + GetClusterUpgradeProgress(ctx context.Context, timeout *int64) (result servicefabric.ClusterUpgradeProgressObject, err error) + GetClusterVersion(ctx context.Context, timeout *int64) (result servicefabric.ClusterVersion, err error) + GetComposeDeploymentStatus(ctx context.Context, deploymentName string, timeout *int64) (result servicefabric.ComposeDeploymentStatusInfo, err error) + GetComposeDeploymentStatusList(ctx context.Context, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedComposeDeploymentStatusInfoList, err error) + GetComposeDeploymentUpgradeProgress(ctx context.Context, deploymentName string, timeout *int64) (result servicefabric.ComposeDeploymentUpgradeProgressInfo, err error) + GetContainerLogsDeployedOnNode(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, tail string, previous *bool, timeout *int64) (result servicefabric.ContainerLogs, err error) + GetContainersEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListContainerInstanceEvent, err error) + GetCorrelatedEventList(ctx context.Context, eventInstanceID string, timeout *int64) (result servicefabric.ListFabricEvent, err error) + GetDataLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionDataLossProgress, err error) + GetDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.DeployedApplicationHealth, err error) + GetDeployedApplicationHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, eventsHealthStateFilter *int32, deployedServicePackagesHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.DeployedApplicationHealth, err error) + GetDeployedApplicationInfo(ctx context.Context, nodeName string, applicationID string, timeout *int64, includeHealthState *bool) (result servicefabric.DeployedApplicationInfo, err error) + GetDeployedApplicationInfoList(ctx context.Context, nodeName string, timeout *int64, includeHealthState *bool, continuationToken string, maxResults *int64) (result servicefabric.PagedDeployedApplicationInfoList, err error) + GetDeployedCodePackageInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, timeout *int64) (result servicefabric.ListDeployedCodePackageInfo, err error) + GetDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.DeployedServicePackageHealth, err error) + GetDeployedServicePackageHealthUsingPolicy(ctx context.Context, nodeName string, applicationID string, servicePackageName string, eventsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.DeployedServicePackageHealth, err error) + GetDeployedServicePackageInfoList(ctx context.Context, nodeName string, applicationID string, timeout *int64) (result servicefabric.ListDeployedServicePackageInfo, err error) + GetDeployedServicePackageInfoListByName(ctx context.Context, nodeName string, applicationID string, servicePackageName string, timeout *int64) (result servicefabric.ListDeployedServicePackageInfo, err error) + GetDeployedServiceReplicaDetailInfo(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result servicefabric.DeployedServiceReplicaDetailInfoModel, err error) + GetDeployedServiceReplicaDetailInfoByPartitionID(ctx context.Context, nodeName string, partitionID uuid.UUID, timeout *int64) (result servicefabric.DeployedServiceReplicaDetailInfoModel, err error) + GetDeployedServiceReplicaInfoList(ctx context.Context, nodeName string, applicationID string, partitionID *uuid.UUID, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceReplicaInfo, err error) + GetDeployedServiceTypeInfoByName(ctx context.Context, nodeName string, applicationID string, serviceTypeName string, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceTypeInfo, err error) + GetDeployedServiceTypeInfoList(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, timeout *int64) (result servicefabric.ListDeployedServiceTypeInfo, err error) + GetFaultOperationList(ctx context.Context, typeFilter int32, stateFilter int32, timeout *int64) (result servicefabric.ListOperationStatus, err error) + GetImageStoreContent(ctx context.Context, contentPath string, timeout *int64) (result servicefabric.ImageStoreContent, err error) + GetImageStoreRootContent(ctx context.Context, timeout *int64) (result servicefabric.ImageStoreContent, err error) + GetImageStoreUploadSessionByID(ctx context.Context, sessionID uuid.UUID, timeout *int64) (result servicefabric.UploadSession, err error) + GetImageStoreUploadSessionByPath(ctx context.Context, contentPath string, timeout *int64) (result servicefabric.UploadSession, err error) + GetNameExistsInfo(ctx context.Context, nameID string, timeout *int64) (result autorest.Response, err error) + GetNodeEventList(ctx context.Context, nodeName string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListNodeEvent, err error) + GetNodeHealth(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.NodeHealth, err error) + GetNodeHealthUsingPolicy(ctx context.Context, nodeName string, eventsHealthStateFilter *int32, clusterHealthPolicy *servicefabric.ClusterHealthPolicy, timeout *int64) (result servicefabric.NodeHealth, err error) + GetNodeInfo(ctx context.Context, nodeName string, timeout *int64) (result servicefabric.NodeInfo, err error) + GetNodeInfoList(ctx context.Context, continuationToken string, nodeStatusFilter servicefabric.NodeStatusFilter, maxResults *int64, timeout *int64) (result servicefabric.PagedNodeInfoList, err error) + GetNodeLoadInfo(ctx context.Context, nodeName string, timeout *int64) (result servicefabric.NodeLoadInfo, err error) + GetNodesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListNodeEvent, err error) + GetNodeTransitionProgress(ctx context.Context, nodeName string, operationID uuid.UUID, timeout *int64) (result servicefabric.NodeTransitionProgress, err error) + GetPartitionBackupConfigurationInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.PartitionBackupConfigurationInfo, err error) + GetPartitionBackupList(ctx context.Context, partitionID uuid.UUID, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time) (result servicefabric.PagedBackupInfoList, err error) + GetPartitionBackupProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.BackupProgressInfo, err error) + GetPartitionEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListPartitionEvent, err error) + GetPartitionHealth(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.PartitionHealth, err error) + GetPartitionHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, eventsHealthStateFilter *int32, replicasHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.PartitionHealth, err error) + GetPartitionInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.ServicePartitionInfoModel, err error) + GetPartitionInfoList(ctx context.Context, serviceID string, continuationToken string, timeout *int64) (result servicefabric.PagedServicePartitionInfoList, err error) + GetPartitionLoadInformation(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.PartitionLoadInformation, err error) + GetPartitionReplicaEventList(ctx context.Context, partitionID uuid.UUID, replicaID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListReplicaEvent, err error) + GetPartitionReplicasEventList(ctx context.Context, partitionID uuid.UUID, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListReplicaEvent, err error) + GetPartitionRestartProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionRestartProgress, err error) + GetPartitionRestoreProgress(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.RestoreProgressInfo, err error) + GetPartitionsEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListPartitionEvent, err error) + GetPropertyInfo(ctx context.Context, nameID string, propertyName string, timeout *int64) (result servicefabric.PropertyInfo, err error) + GetPropertyInfoList(ctx context.Context, nameID string, includeValues *bool, continuationToken string, timeout *int64) (result servicefabric.PagedPropertyInfoList, err error) + GetProvisionedFabricCodeVersionInfoList(ctx context.Context, codeVersion string, timeout *int64) (result servicefabric.ListFabricCodeVersionInfo, err error) + GetProvisionedFabricConfigVersionInfoList(ctx context.Context, configVersion string, timeout *int64) (result servicefabric.ListFabricConfigVersionInfo, err error) + GetQuorumLossProgress(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, timeout *int64) (result servicefabric.PartitionQuorumLossProgress, err error) + GetRepairTaskList(ctx context.Context, taskIDFilter string, stateFilter *int32, executorFilter string) (result servicefabric.ListRepairTask, err error) + GetReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, timeout *int64) (result servicefabric.ReplicaHealthModel, err error) + GetReplicaHealthUsingPolicy(ctx context.Context, partitionID uuid.UUID, replicaID string, eventsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, timeout *int64) (result servicefabric.ReplicaHealthModel, err error) + GetReplicaInfo(ctx context.Context, partitionID uuid.UUID, replicaID string, timeout *int64) (result servicefabric.ReplicaInfoModel, err error) + GetReplicaInfoList(ctx context.Context, partitionID uuid.UUID, continuationToken string, timeout *int64) (result servicefabric.PagedReplicaInfoList, err error) + GetServiceBackupConfigurationInfo(ctx context.Context, serviceID string, continuationToken string, maxResults *int64, timeout *int64) (result servicefabric.PagedBackupConfigurationInfoList, err error) + GetServiceBackupList(ctx context.Context, serviceID string, timeout *int64, latest *bool, startDateTimeFilter *date.Time, endDateTimeFilter *date.Time, continuationToken string, maxResults *int64) (result servicefabric.PagedBackupInfoList, err error) + GetServiceDescription(ctx context.Context, serviceID string, timeout *int64) (result servicefabric.ServiceDescriptionModel, err error) + GetServiceEventList(ctx context.Context, serviceID string, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListServiceEvent, err error) + GetServiceHealth(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ServiceHealth, err error) + GetServiceHealthUsingPolicy(ctx context.Context, serviceID string, eventsHealthStateFilter *int32, partitionsHealthStateFilter *int32, applicationHealthPolicy *servicefabric.ApplicationHealthPolicy, excludeHealthStatistics *bool, timeout *int64) (result servicefabric.ServiceHealth, err error) + GetServiceInfo(ctx context.Context, applicationID string, serviceID string, timeout *int64) (result servicefabric.ServiceInfoModel, err error) + GetServiceInfoList(ctx context.Context, applicationID string, serviceTypeName string, continuationToken string, timeout *int64) (result servicefabric.PagedServiceInfoList, err error) + GetServiceManifest(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceManifestName string, timeout *int64) (result servicefabric.ServiceTypeManifest, err error) + GetServiceNameInfo(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result servicefabric.ServiceNameInfo, err error) + GetServicesEventList(ctx context.Context, startTimeUtc string, endTimeUtc string, timeout *int64, eventsTypesFilter string, excludeAnalysisEvents *bool, skipCorrelationLookup *bool) (result servicefabric.ListServiceEvent, err error) + GetServiceTypeInfoByName(ctx context.Context, applicationTypeName string, applicationTypeVersion string, serviceTypeName string, timeout *int64) (result servicefabric.ServiceTypeInfo, err error) + GetServiceTypeInfoList(ctx context.Context, applicationTypeName string, applicationTypeVersion string, timeout *int64) (result servicefabric.ListServiceTypeInfo, err error) + GetSubNameInfoList(ctx context.Context, nameID string, recursive *bool, continuationToken string, timeout *int64) (result servicefabric.PagedSubNameInfoList, err error) + GetUpgradeOrchestrationServiceState(ctx context.Context, timeout *int64) (result servicefabric.UpgradeOrchestrationServiceState, err error) + InvokeContainerAPI(ctx context.Context, nodeName string, applicationID string, serviceManifestName string, codePackageName string, codePackageInstanceID string, containerAPIRequestBody servicefabric.ContainerAPIRequestBody, timeout *int64) (result servicefabric.ContainerAPIResponse, err error) + InvokeInfrastructureCommand(ctx context.Context, command string, serviceID string, timeout *int64) (result servicefabric.String, err error) + InvokeInfrastructureQuery(ctx context.Context, command string, serviceID string, timeout *int64) (result servicefabric.String, err error) + PostChaosSchedule(ctx context.Context, chaosSchedule servicefabric.ChaosScheduleDescription, timeout *int64) (result autorest.Response, err error) + ProvisionApplicationType(ctx context.Context, provisionApplicationTypeDescriptionBaseRequiredBodyParam servicefabric.BasicProvisionApplicationTypeDescriptionBase, timeout *int64) (result autorest.Response, err error) + ProvisionCluster(ctx context.Context, provisionFabricDescription servicefabric.ProvisionFabricDescription, timeout *int64) (result autorest.Response, err error) + PutProperty(ctx context.Context, nameID string, propertyDescription servicefabric.PropertyDescription, timeout *int64) (result autorest.Response, err error) + RecoverAllPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) + RecoverPartition(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + RecoverServicePartitions(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + RecoverSystemPartitions(ctx context.Context, timeout *int64) (result autorest.Response, err error) + RemoveComposeDeployment(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) + RemoveNodeState(ctx context.Context, nodeName string, timeout *int64) (result autorest.Response, err error) + RemoveReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, forceRemove *bool, timeout *int64) (result autorest.Response, err error) + ReportApplicationHealth(ctx context.Context, applicationID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportClusterHealth(ctx context.Context, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportDeployedApplicationHealth(ctx context.Context, nodeName string, applicationID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportDeployedServicePackageHealth(ctx context.Context, nodeName string, applicationID string, servicePackageName string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportNodeHealth(ctx context.Context, nodeName string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportPartitionHealth(ctx context.Context, partitionID uuid.UUID, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportReplicaHealth(ctx context.Context, partitionID uuid.UUID, replicaID string, replicaHealthReportServiceKind servicefabric.ReplicaHealthReportServiceKind, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ReportServiceHealth(ctx context.Context, serviceID string, healthInformation servicefabric.HealthInformation, immediate *bool, timeout *int64) (result autorest.Response, err error) + ResetPartitionLoad(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + ResolveService(ctx context.Context, serviceID string, partitionKeyType *int32, partitionKeyValue string, previousRspVersion string, timeout *int64) (result servicefabric.ResolvedServicePartition, err error) + RestartDeployedCodePackage(ctx context.Context, nodeName string, applicationID string, restartDeployedCodePackageDescription servicefabric.RestartDeployedCodePackageDescription, timeout *int64) (result autorest.Response, err error) + RestartNode(ctx context.Context, nodeName string, restartNodeDescription servicefabric.RestartNodeDescription, timeout *int64) (result autorest.Response, err error) + RestartReplica(ctx context.Context, nodeName string, partitionID uuid.UUID, replicaID string, timeout *int64) (result autorest.Response, err error) + RestorePartition(ctx context.Context, partitionID uuid.UUID, restorePartitionDescription servicefabric.RestorePartitionDescription, restoreTimeout *int32, timeout *int64) (result autorest.Response, err error) + ResumeApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + ResumeApplicationUpgrade(ctx context.Context, applicationID string, resumeApplicationUpgradeDescription servicefabric.ResumeApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + ResumeClusterUpgrade(ctx context.Context, resumeClusterUpgradeDescription servicefabric.ResumeClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + ResumePartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + ResumeServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + RollbackApplicationUpgrade(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + RollbackClusterUpgrade(ctx context.Context, timeout *int64) (result autorest.Response, err error) + SetUpgradeOrchestrationServiceState(ctx context.Context, upgradeOrchestrationServiceState servicefabric.UpgradeOrchestrationServiceState, timeout *int64) (result servicefabric.UpgradeOrchestrationServiceStateSummary, err error) + StartApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeDescription servicefabric.ApplicationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartChaos(ctx context.Context, chaosParameters servicefabric.ChaosParameters, timeout *int64) (result autorest.Response, err error) + StartClusterConfigurationUpgrade(ctx context.Context, clusterConfigurationUpgradeDescription servicefabric.ClusterConfigurationUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartClusterUpgrade(ctx context.Context, startClusterUpgradeDescription servicefabric.StartClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartComposeDeploymentUpgrade(ctx context.Context, deploymentName string, composeDeploymentUpgradeDescription servicefabric.ComposeDeploymentUpgradeDescription, timeout *int64) (result autorest.Response, err error) + StartDataLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, dataLossMode servicefabric.DataLossMode, timeout *int64) (result autorest.Response, err error) + StartNodeTransition(ctx context.Context, nodeName string, operationID uuid.UUID, nodeTransitionType servicefabric.NodeTransitionType, nodeInstanceID string, stopDurationInSeconds int32, timeout *int64) (result autorest.Response, err error) + StartPartitionRestart(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, restartPartitionMode servicefabric.RestartPartitionMode, timeout *int64) (result autorest.Response, err error) + StartQuorumLoss(ctx context.Context, serviceID string, partitionID uuid.UUID, operationID uuid.UUID, quorumLossMode servicefabric.QuorumLossMode, quorumLossDuration int32, timeout *int64) (result autorest.Response, err error) + StartRollbackComposeDeploymentUpgrade(ctx context.Context, deploymentName string, timeout *int64) (result autorest.Response, err error) + StopChaos(ctx context.Context, timeout *int64) (result autorest.Response, err error) + SubmitPropertyBatch(ctx context.Context, nameID string, propertyBatchDescriptionList servicefabric.PropertyBatchDescriptionList, timeout *int64) (result servicefabric.PropertyBatchInfoModel, err error) + SuspendApplicationBackup(ctx context.Context, applicationID string, timeout *int64) (result autorest.Response, err error) + SuspendPartitionBackup(ctx context.Context, partitionID uuid.UUID, timeout *int64) (result autorest.Response, err error) + SuspendServiceBackup(ctx context.Context, serviceID string, timeout *int64) (result autorest.Response, err error) + UnprovisionApplicationType(ctx context.Context, applicationTypeName string, unprovisionApplicationTypeDescriptionInfo servicefabric.UnprovisionApplicationTypeDescriptionInfo, timeout *int64) (result autorest.Response, err error) + UnprovisionCluster(ctx context.Context, unprovisionFabricDescription servicefabric.UnprovisionFabricDescription, timeout *int64) (result autorest.Response, err error) + UpdateApplicationUpgrade(ctx context.Context, applicationID string, applicationUpgradeUpdateDescription servicefabric.ApplicationUpgradeUpdateDescription, timeout *int64) (result autorest.Response, err error) + UpdateBackupPolicy(ctx context.Context, backupPolicyDescription servicefabric.BackupPolicyDescription, backupPolicyName string, timeout *int64) (result autorest.Response, err error) + UpdateClusterUpgrade(ctx context.Context, updateClusterUpgradeDescription servicefabric.UpdateClusterUpgradeDescription, timeout *int64) (result autorest.Response, err error) + UpdateRepairExecutionState(ctx context.Context, repairTask servicefabric.RepairTask) (result servicefabric.RepairTaskUpdateInfo, err error) + UpdateRepairTaskHealthPolicy(ctx context.Context, repairTaskUpdateHealthPolicyDescription servicefabric.RepairTaskUpdateHealthPolicyDescription) (result servicefabric.RepairTaskUpdateInfo, err error) + UpdateService(ctx context.Context, serviceID string, serviceUpdateDescription servicefabric.BasicServiceUpdateDescription, timeout *int64) (result autorest.Response, err error) + UploadFile(ctx context.Context, contentPath string, timeout *int64) (result autorest.Response, err error) + UploadFileChunk(ctx context.Context, contentPath string, sessionID uuid.UUID, contentRange string, timeout *int64) (result autorest.Response, err error) +} + +var _ BaseClientAPI = (*servicefabric.BaseClient)(nil) + +// MeshSecretClientAPI contains the set of methods on the MeshSecretClient type. +type MeshSecretClientAPI interface { + CreateOrUpdate(ctx context.Context, secretResourceName string, secretResourceDescription servicefabric.SecretResourceDescription) (result servicefabric.SecretResourceDescription, err error) + Delete(ctx context.Context, secretResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, secretResourceName string) (result servicefabric.SecretResourceDescription, err error) + List(ctx context.Context) (result servicefabric.PagedSecretResourceDescriptionList, err error) +} + +var _ MeshSecretClientAPI = (*servicefabric.MeshSecretClient)(nil) + +// MeshSecretValueClientAPI contains the set of methods on the MeshSecretValueClient type. +type MeshSecretValueClientAPI interface { + AddValue(ctx context.Context, secretResourceName string, secretValueResourceName string, secretValueResourceDescription servicefabric.SecretValueResourceDescription) (result servicefabric.SecretValueResourceDescription, err error) + Delete(ctx context.Context, secretResourceName string, secretValueResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, secretResourceName string, secretValueResourceName string) (result servicefabric.SecretValueResourceDescription, err error) + List(ctx context.Context, secretResourceName string) (result servicefabric.PagedSecretValueResourceDescriptionList, err error) + Show(ctx context.Context, secretResourceName string, secretValueResourceName string) (result servicefabric.SecretValue, err error) +} + +var _ MeshSecretValueClientAPI = (*servicefabric.MeshSecretValueClient)(nil) + +// MeshVolumeClientAPI contains the set of methods on the MeshVolumeClient type. +type MeshVolumeClientAPI interface { + CreateOrUpdate(ctx context.Context, volumeResourceName string, volumeResourceDescription servicefabric.VolumeResourceDescription) (result servicefabric.VolumeResourceDescription, err error) + Delete(ctx context.Context, volumeResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, volumeResourceName string) (result servicefabric.VolumeResourceDescription, err error) + List(ctx context.Context) (result servicefabric.PagedVolumeResourceDescriptionList, err error) +} + +var _ MeshVolumeClientAPI = (*servicefabric.MeshVolumeClient)(nil) + +// MeshNetworkClientAPI contains the set of methods on the MeshNetworkClient type. +type MeshNetworkClientAPI interface { + CreateOrUpdate(ctx context.Context, networkResourceName string, networkResourceDescription servicefabric.NetworkResourceDescription) (result servicefabric.NetworkResourceDescription, err error) + Delete(ctx context.Context, networkResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, networkResourceName string) (result servicefabric.NetworkResourceDescription, err error) + List(ctx context.Context) (result servicefabric.PagedNetworkResourceDescriptionList, err error) +} + +var _ MeshNetworkClientAPI = (*servicefabric.MeshNetworkClient)(nil) + +// MeshApplicationClientAPI contains the set of methods on the MeshApplicationClient type. +type MeshApplicationClientAPI interface { + CreateOrUpdate(ctx context.Context, applicationResourceName string, applicationResourceDescription servicefabric.ApplicationResourceDescription) (result servicefabric.ApplicationResourceDescription, err error) + Delete(ctx context.Context, applicationResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, applicationResourceName string) (result servicefabric.ApplicationResourceDescription, err error) + List(ctx context.Context) (result servicefabric.PagedApplicationResourceDescriptionList, err error) +} + +var _ MeshApplicationClientAPI = (*servicefabric.MeshApplicationClient)(nil) + +// MeshServiceClientAPI contains the set of methods on the MeshServiceClient type. +type MeshServiceClientAPI interface { + Get(ctx context.Context, applicationResourceName string, serviceResourceName string) (result servicefabric.ServiceResourceDescription, err error) + List(ctx context.Context, applicationResourceName string) (result servicefabric.PagedServiceResourceDescriptionList, err error) +} + +var _ MeshServiceClientAPI = (*servicefabric.MeshServiceClient)(nil) + +// MeshCodePackageClientAPI contains the set of methods on the MeshCodePackageClient type. +type MeshCodePackageClientAPI interface { + GetContainerLogs(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string, codePackageName string, tail string) (result servicefabric.ContainerLogs, err error) +} + +var _ MeshCodePackageClientAPI = (*servicefabric.MeshCodePackageClient)(nil) + +// MeshServiceReplicaClientAPI contains the set of methods on the MeshServiceReplicaClient type. +type MeshServiceReplicaClientAPI interface { + Get(ctx context.Context, applicationResourceName string, serviceResourceName string, replicaName string) (result servicefabric.ServiceReplicaDescription, err error) + List(ctx context.Context, applicationResourceName string, serviceResourceName string) (result servicefabric.PagedServiceReplicaDescriptionList, err error) +} + +var _ MeshServiceReplicaClientAPI = (*servicefabric.MeshServiceReplicaClient)(nil) + +// MeshGatewayClientAPI contains the set of methods on the MeshGatewayClient type. +type MeshGatewayClientAPI interface { + CreateOrUpdate(ctx context.Context, gatewayResourceName string, gatewayResourceDescription servicefabric.GatewayResourceDescription) (result servicefabric.GatewayResourceDescription, err error) + Delete(ctx context.Context, gatewayResourceName string) (result autorest.Response, err error) + Get(ctx context.Context, gatewayResourceName string) (result servicefabric.GatewayResourceDescription, err error) + List(ctx context.Context) (result servicefabric.PagedGatewayResourceDescriptionList, err error) +} + +var _ MeshGatewayClientAPI = (*servicefabric.MeshGatewayClient)(nil) diff --git a/services/servicefabric/6.4/servicefabric/version.go b/services/servicefabric/6.4/servicefabric/version.go new file mode 100644 index 000000000000..cfc16324bc36 --- /dev/null +++ b/services/servicefabric/6.4/servicefabric/version.go @@ -0,0 +1,30 @@ +package servicefabric + +import "github.com/Azure/azure-sdk-for-go/version" + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + version.Number + " servicefabric/6.4.0.36" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +}